Fri Apr 15 11:53:46 1994 Stan Shebs (shebs@andros.cygnus.com)

* source.c (DIRNAME_SEPARATOR): New macro, replaces all references
	to : in search path processing.
	* defs.h (qsort): Rename argument in prototype.
	* symtab.h (SAYMBOL_VALUE): Rename value field, avoids bugs in
	some compilers.
	* breakpoint.c, exec.c, mdebugread.c, mipsread.c, xcoffexec.c
	(false): Eliminate usages.
This commit is contained in:
Stan Shebs 1994-04-15 21:55:49 +00:00
parent 97ea252ef8
commit fad466eb6d
7 changed files with 68 additions and 44 deletions

View File

@ -1,3 +1,13 @@
Fri Apr 15 11:53:46 1994 Stan Shebs (shebs@andros.cygnus.com)
* source.c (DIRNAME_SEPARATOR): New macro, replaces all references
to : in search path processing.
* defs.h (qsort): Rename argument in prototype.
* symtab.h (SAYMBOL_VALUE): Rename value field, avoids bugs in
some compilers.
* breakpoint.c, exec.c, mdebugread.c, mipsread.c, xcoffexec.c
(false): Eliminate usages.
Fri Apr 15 11:35:19 1994 Steve Chamberlain (sac@cygnus.com)
* h8500-tdep.c (initialize_h8500_tdep, large_command):

View File

@ -2293,7 +2293,7 @@ can_use_hardware_watchpoint (b)
if (!(v->lval == lval_memory)
|| v->lval == not_lval
|| (v->lval != not_lval
&& v->modifiable == false))
&& v->modifiable == 0))
return 0;
else
if (v->lval == lval_memory)

View File

@ -520,24 +520,24 @@ enum val_prettyprint
#else /* No BFD64 */
/* Default to support for "long long" if the host compiler being used is gcc.
Config files must define CC_HAS_LONG_LONG to use other host compilers
that are capable of supporting "long long", and to cause gdb to use that
support. Not defining CC_HAS_LONG_LONG will suppress use of "long long"
regardless of what compiler is used.
/* If all compilers for this host support "long long" and we want to
use it for LONGEST (the performance hit is about 10% on a testsuite
run based on one DECstation test), then the xm.h file can define
CC_HAS_LONG_LONG.
FIXME: For now, automatic selection of "long long" as the default when
gcc is used is disabled, pending further testing. Concerns include the
impact on gdb performance and the universality of bugfree long long
support on platforms that do have gcc. Compiling with FORCE_LONG_LONG
will select "long long" use for testing purposes. -fnf */
Using GCC 1.39 on BSDI with long long causes about 700 new
testsuite failures. Using long long for LONGEST on the DECstation
causes 3 new FAILs in the testsuite and many heuristic fencepost
warnings. These are not investigated, but a first guess would be
that the BSDI problems are GCC bugs in long long support and the
latter are GDB bugs. */
#ifndef CC_HAS_LONG_LONG
# if defined (__GNUC__) /*&& defined (FORCE_LONG_LONG)*/ /* See FIXME above */
# if defined (__GNUC__) && defined (FORCE_LONG_LONG)
# define CC_HAS_LONG_LONG 1
# endif
#endif
/* LONGEST should not be a typedef, because "unsigned LONGEST" needs to work.
CC_HAS_LONG_LONG is defined if the host compiler supports "long long"
variables and we wish to make use of that support. */
@ -739,7 +739,7 @@ free PARAMS ((void *)); /* 4.10.3.2 */
extern void
qsort PARAMS ((void *base, size_t nmemb, /* 4.10.5.2 */
size_t size,
int (*comp)(const void *, const void *)));
int (*compar)(const void *, const void *)));
#ifndef MEM_FNS_DECLARED /* Some non-ANSI use void *, not char *. */
extern PTR

View File

@ -3767,8 +3767,8 @@ elfmdebug_build_psymtabs (objfile, swap, sec, section_offsets)
struct ecoff_debug_info *info;
buf = alloca (swap->external_hdr_size);
if (bfd_get_section_contents (abfd, sec, buf, (file_ptr) 0,
swap->external_hdr_size) == false)
if (!bfd_get_section_contents (abfd, sec, buf, (file_ptr) 0,
swap->external_hdr_size))
perror_with_name (bfd_get_filename (abfd));
info = ((struct ecoff_debug_info *)

View File

@ -25,10 +25,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "gdbcmd.h"
#include "frame.h"
#ifdef USG
#include <sys/types.h>
#endif
#include <string.h>
#include <sys/param.h>
#include <sys/stat.h>
@ -38,6 +35,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "symfile.h"
#include "objfiles.h"
#ifndef DIRNAME_SEPARATOR
#define DIRNAME_SEPARATOR ':'
#endif
/* Prototypes for local functions. */
static int
@ -237,7 +238,10 @@ forget_cached_source_info ()
void
init_source_path ()
{
source_path = savestring ("$cdir:$cwd", /* strlen of it */ 10);
char buf[20];
sprintf (buf, "$cdir%c$cwd", DIRNAME_SEPARATOR);
source_path = strsave (buf);
forget_cached_source_info ();
}
@ -288,7 +292,7 @@ mod_path (dirname, which_path)
struct stat st;
{
char *colon = strchr (name, ':');
char *colon = strchr (name, DIRNAME_SEPARATOR);
char *space = strchr (name, ' ');
char *tab = strchr (name, '\t');
if (colon == 0 && space == 0 && tab == 0)
@ -303,7 +307,7 @@ mod_path (dirname, which_path)
if (tab != 0 && (p == 0 || tab < p))
p = tab;
dirname = p + 1;
while (*dirname == ':' || *dirname == ' ' || *dirname == '\t')
while (*dirname == DIRNAME_SEPARATOR || *dirname == ' ' || *dirname == '\t')
++dirname;
}
}
@ -378,7 +382,7 @@ mod_path (dirname, which_path)
while (1)
{
if (!strncmp (p, name, len)
&& (p[len] == '\0' || p[len] == ':'))
&& (p[len] == '\0' || p[len] == DIRNAME_SEPARATOR))
{
/* Found it in the search path, remove old copy */
if (p > *which_path)
@ -387,7 +391,7 @@ mod_path (dirname, which_path)
goto skip_dup; /* Same dir twice in one cmd */
strcpy (p, &p[len+1]); /* Copy from next \0 or : */
}
p = strchr (p, ':');
p = strchr (p, DIRNAME_SEPARATOR);
if (p != 0)
++p;
else
@ -395,6 +399,11 @@ mod_path (dirname, which_path)
}
if (p == 0)
{
char tinybuf[2];
tinybuf[0] = DIRNAME_SEPARATOR;
tinybuf[1] = '\0';
/* If we have already tacked on a name(s) in this command, be sure they stay on the front as we tack on some more. */
if (prefix)
{
@ -402,7 +411,7 @@ mod_path (dirname, which_path)
c = old[prefix];
old[prefix] = '\0';
temp = concat (old, ":", name, NULL);
temp = concat (old, tinybuf, name, NULL);
old[prefix] = c;
*which_path = concat (temp, "", &old[prefix], NULL);
prefix = strlen (temp);
@ -410,7 +419,7 @@ mod_path (dirname, which_path)
}
else
{
*which_path = concat (name, (old[0]? ":" : old), old, NULL);
*which_path = concat (name, (old[0] ? tinybuf : old), old, NULL);
prefix = strlen (name);
}
free (old);
@ -448,7 +457,7 @@ source_info (ignore, from_tty)
/* Open a file named STRING, searching path PATH (dir names sep by colons)
/* Open a file named STRING, searching path PATH (dir names sep by some char)
using mode MODE and protection bits PROT in the calls to open.
If TRY_CWD_FIRST, try to open ./STRING before searching PATH.
@ -503,7 +512,7 @@ openp (path, try_cwd_first, string, mode, prot, filename_opened)
fd = -1;
for (p = path; p; p = p1 ? p1 + 1 : 0)
{
p1 = (char *) strchr (p, ':');
p1 = (char *) strchr (p, DIRNAME_SEPARATOR);
if (p1)
len = p1 - p;
else
@ -535,7 +544,7 @@ openp (path, try_cwd_first, string, mode, prot, filename_opened)
strcat (filename+len, "/");
strcat (filename, string);
fd = open (filename, mode, prot);
fd = open (filename, mode);
if (fd >= 0) break;
}
@ -587,8 +596,8 @@ open_source_file (s)
/* We cast strstr's result in case an ANSIhole has made it const,
which produces a "required warning" when assigned to a nonconst. */
p = (char *)strstr (source_path, "$cdir");
if (p && (p == path || p[-1] == ':')
&& (p[cdir_len] == ':' || p[cdir_len] == '\0')) {
if (p && (p == path || p[-1] == DIRNAME_SEPARATOR)
&& (p[cdir_len] == DIRNAME_SEPARATOR || p[cdir_len] == '\0')) {
int len;
path = (char *)
@ -606,12 +615,12 @@ open_source_file (s)
/* Didn't work. Try using just the basename. */
p = basename (s->filename);
if (p != s->filename)
result = openp(path, 0, p, O_RDONLY,0, &s->fullname);
result = openp (path, 0, p, O_RDONLY, 0, &s->fullname);
}
if (result >= 0)
{
fullname = s -> fullname;
s -> fullname = mstrsave (s -> objfile -> md, s -> fullname);
fullname = s->fullname;
s->fullname = mstrsave (s->objfile->md, s->fullname);
free (fullname);
}
return result;
@ -804,6 +813,8 @@ identify_source_line (s, line, mid_statement, pc)
if (line > s->nlines)
/* Don't index off the end of the line_charpos array. */
return 0;
/* FIXME-32x64: Need a version of print_address_numeric which does
not pass use_local to print_longest. */
printf_unfiltered ("\032\032%s:%d:%d:%s:0x%lx\n", s->fullname,
line, s->line_charpos[line - 1],
mid_statement ? "middle" : "beg",
@ -1025,20 +1036,23 @@ list_command (arg, from_tty)
if (*arg == '*')
{
if (sal.symtab == 0)
/* FIXME-32x64--assumes sal.pc fits in long. */
error ("No source file for address %s.",
local_hex_string((unsigned long) sal.pc));
sym = find_pc_function (sal.pc);
if (sym)
{
printf_filtered ("%s is in ",
local_hex_string((unsigned long) sal.pc));
print_address_numeric (sal.pc, gdb_stdout);
printf_filtered (" is in ");
fputs_filtered (SYMBOL_SOURCE_NAME (sym), gdb_stdout);
printf_filtered (" (%s:%d).\n", sal.symtab->filename, sal.line);
}
else
printf_filtered ("%s is at %s:%d.\n",
local_hex_string((unsigned long) sal.pc),
sal.symtab->filename, sal.line);
{
print_address_numeric (sal.pc, gdb_stdout);
printf_filtered (" is at %s:%d.\n",
sal.symtab->filename, sal.line);
}
}
/* If line was not specified by just a line number,
@ -1125,7 +1139,7 @@ line_info (arg, from_tty)
printf_filtered ("\n");
}
else if (sal.line > 0
&& find_line_pc_range (sal.symtab, sal.line, &start_pc, &end_pc))
&& find_line_pc_range (sal, &start_pc, &end_pc))
{
if (start_pc == end_pc)
{

View File

@ -64,7 +64,7 @@ struct general_symbol_info
/* The fact that this is a long not a LONGEST mainly limits the
range of a LOC_CONST. Since LOC_CONST_BYTES exists, I'm not
sure that is a big deal. */
long value;
long ivalue;
struct block *block;
@ -110,7 +110,7 @@ struct general_symbol_info
};
#define SYMBOL_NAME(symbol) (symbol)->ginfo.name
#define SYMBOL_VALUE(symbol) (symbol)->ginfo.value.value
#define SYMBOL_VALUE(symbol) (symbol)->ginfo.value.ivalue
#define SYMBOL_VALUE_ADDRESS(symbol) (symbol)->ginfo.value.address
#define SYMBOL_VALUE_BYTES(symbol) (symbol)->ginfo.value.bytes
#define SYMBOL_BLOCK_VALUE(symbol) (symbol)->ginfo.value.block

View File

@ -358,7 +358,7 @@ xfer_memory (memaddr, myaddr, len, write, target)
{
/* Entire transfer is within this section. */
res = xfer_fn (p->bfd, p->the_bfd_section, myaddr, memaddr - p->addr, len);
return (res != false)? len: 0;
return (res != 0) ? len : 0;
}
else if (p->endaddr <= memaddr)
{
@ -370,7 +370,7 @@ xfer_memory (memaddr, myaddr, len, write, target)
/* This section overlaps the transfer. Just do half. */
len = p->endaddr - memaddr;
res = xfer_fn (p->bfd, p->the_bfd_section, myaddr, memaddr - p->addr, len);
return (res != false)? len: 0;
return (res != 0) ? len : 0;
}
else if (p->addr < nextsectaddr)
nextsectaddr = p->addr;