From 41899c04122d85b9ce11715061d03330b1d59175 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Fri, 23 Mar 2001 00:41:02 +0000 Subject: [PATCH] * config/pa/xm-hppah.h (HPPA_COMPILER_BUG): Delete. GDB only compiles using an ISO-C compiler. (MALLOC_INCOMPATIBLE): Ditto. * linespec.c (decode_line_1): Delete hack to work around HPPA_COMPILER_BUG. --- gdb/ChangeLog | 8 ++++++++ gdb/config/pa/xm-hppah.h | 5 ----- gdb/linespec.c | 29 ----------------------------- 3 files changed, 8 insertions(+), 34 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 84d19b072e..5ad26d3ddf 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2001-03-22 Andrew Cagney + + * config/pa/xm-hppah.h (HPPA_COMPILER_BUG): Delete. GDB only + compiles using an ISO-C compiler. + (MALLOC_INCOMPATIBLE): Ditto. + * linespec.c (decode_line_1): Delete hack to work around + HPPA_COMPILER_BUG. + 2001-03-22 Andrew Cagney * exec.c (xfer_memory): Always initialize section. diff --git a/gdb/config/pa/xm-hppah.h b/gdb/config/pa/xm-hppah.h index 497d2a738b..796b17af24 100644 --- a/gdb/config/pa/xm-hppah.h +++ b/gdb/config/pa/xm-hppah.h @@ -29,11 +29,6 @@ #define USG -#ifndef __STDC__ -/* This define is discussed in decode_line_1 in symtab.c */ -#define HPPA_COMPILER_BUG -#endif - #define HAVE_TERMIOS /* HP defines malloc and realloc as returning void *, even for non-ANSI diff --git a/gdb/linespec.c b/gdb/linespec.c index f78751b943..35f225cf2d 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -459,36 +459,7 @@ decode_line_1 (char **argptr, int funfirstline, struct symtab *default_symtab, int default_line, char ***canonical) { struct symtabs_and_lines values; -#ifdef HPPA_COMPILER_BUG - /* FIXME: The native HP 9000/700 compiler has a bug which appears - when optimizing this file with target i960-vxworks. I haven't - been able to construct a simple test case. The problem is that - in the second call to SKIP_PROLOGUE below, the compiler somehow - does not realize that the statement val = find_pc_line (...) will - change the values of the fields of val. It extracts the elements - into registers at the top of the block, and does not update the - registers after the call to find_pc_line. You can check this by - inserting a printf at the end of find_pc_line to show what values - it is returning for val.pc and val.end and another printf after - the call to see what values the function actually got (remember, - this is compiling with cc -O, with this patch removed). You can - also examine the assembly listing: search for the second call to - skip_prologue; the LDO statement before the next call to - find_pc_line loads the address of the structure which - find_pc_line will return; if there is a LDW just before the LDO, - which fetches an element of the structure, then the compiler - still has the bug. - - Setting val to volatile avoids the problem. We must undef - volatile, because the HPPA native compiler does not define - __STDC__, although it does understand volatile, and so volatile - will have been defined away in defs.h. */ -#undef volatile - volatile struct symtab_and_line val; -#define volatile /*nothing */ -#else struct symtab_and_line val; -#endif register char *p, *p1; char *q, *pp, *ii, *p2; #if 0 -- 2.34.1