[Bug debug/24943] New: [hppa64] Bad dwarf output using non-preserved base register

2005-11-19 Thread tausq at debian dot org
Given a program like this:
int foo(int a, int b, int c)
{
  return a+b+c;
}

int bar(int a, int b, int c)
{
  return foo(a, b, c);
}

int main(int argc, char **argv)
{
  return bar(1,2,3);
}

for foo and bar, gcc generates code that stores the arguments a, b, and c on
the stack by using the argument pointer, but it does this indirectly, like so:

foo
.PROC
.CALLINFO FRAME=80,NO_CALLS,SAVE_SP,ENTRY_GR=3
.ENTRY
copy %r3,%r1
copy %r30,%r3
std,ma %r1,80(%r30)
std %r3,-8(%r30)
ldo -64(%r29),%r20
stw %r26,4(%r20)
stw %r25,12(%r20)
stw %r24,20(%r20)
[...]

gcc proceeds to emit debug info for a, b, and c relative to r20:

$ opt/bin/readelf -wi dwarfbug
[...]
 <2><7d>: Abbrev Number: 3 (DW_TAG_formal_parameter)
 DW_AT_name: a
 DW_AT_decl_file   : 1
 DW_AT_decl_line   : 1
 DW_AT_type: 
 DW_AT_location: 2 byte block: 84 4 (DW_OP_breg20: 4)
 <2><89>: Abbrev Number: 3 (DW_TAG_formal_parameter)
 DW_AT_name: b
 DW_AT_decl_file   : 1
 DW_AT_decl_line   : 1
 DW_AT_type: 
 DW_AT_location: 2 byte block: 84 c (DW_OP_breg20: 12)
 <2><95>: Abbrev Number: 3 (DW_TAG_formal_parameter)
 DW_AT_name: c
 DW_AT_decl_file   : 1
 DW_AT_decl_line   : 1
 DW_AT_type: 
 DW_AT_location: 2 byte block: 84 14(DW_OP_breg20: 20)

The problem is that since r20 is not a call preserved register, when you are
doing a stack unwind, you have no way to retrieve those variables in anything
other than the topmost frame.

I've seen it do this with r20 and r28, but I guess it can do it with any
available register.

On 32-bit hppa, the parameters are always described relative to the frame base
(DW_OP_fbreg), which works fine.

I'm testing this on hpux, but this looks like it affects all 64-bit hppa
targets.


-- 
   Summary: [hppa64] Bad dwarf output using non-preserved base
register
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tausq at debian dot org
 GCC build triplet: hppa64-hp-hpux11.11
  GCC host triplet: hppa64-hp-hpux11.11
GCC target triplet: hppa64-hp-hpux11.11


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24943



[Bug debug/24943] [hppa64] Bad dwarf output using non-preserved base register

2005-11-19 Thread tausq at debian dot org


--- Comment #1 from tausq at debian dot org  2005-11-20 03:38 ---
I forgot to mention that the above was compiled with gcc -g -o dwarfbug
dwarfbug.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24943



[Bug debug/25258] New: [4.0 regression/hpux] gcc generates incorrect stabs debug output

2005-12-04 Thread tausq at debian dot org
Programs compiled with gcc-4.x on 32-bit hpux targets cannot be debugged. When
loaded into gdb, the programs behave as if no debugging information is present. 

For example, given:
int foo(int x)
{
return x;
}

int main(int argc, char **argv)
{
return foo(argc);
}

Placing a breakpoint on foo gives:

(gdb) b foo
During symbol reading, unknown symbol type 0x2e.
During symbol reading, block end address less than block start address in main
(patched it).
During symbol reading, inner block (0x2960-0x2960) not inside outer block
(0x2920-0x2920).
Breakpoint 1 at 0x292c

The "unknown symbol type" warning is for the new BNSYM stab entry that was
added to gcc but not yet updated in gdb.

this problem seems to only occur on the 32-bit HPUX port. On 64-bit HPUX and
32-bit Linux there does not appear to be any problems with slabs debugging.


-- 
   Summary: [4.0 regression/hpux] gcc generates incorrect stabs
debug output
   Product: gcc
   Version: 4.0.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tausq at debian dot org
 GCC build triplet: hppa2.0w-hp-hpux11.11
  GCC host triplet: hppa2.0w-hp-hpux11.11
GCC target triplet: hppa2.0w-hp-hpux11.11


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25258



[Bug debug/25258] [4.0 regression/hpux] gcc generates incorrect stabs debug output

2005-12-05 Thread tausq at debian dot org


--- Comment #1 from tausq at debian dot org  2005-12-06 05:38 ---
The difference is that gcc-3.x creates:

.proc
.callinfo xxx
.entry
...
.exit
.procend
.space $TEXT$
.nsubspa $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
.stabs "",100,0,0,L$text_end
L$text_end:

whereas gcc-4.x creates:

.proc
.callinfo xxx
.entry
...
.exit
.procend
.space $TEXT$
.subspa $CODE$
L$scope0001:
.space $TEXT$
.subspa $CODE$
.stabs  "",100,0,0,L$etext
L$etext:

By using subspa, the L$etext label is placed back at the beginning of the
original code section, so it does not properly indicate the end of the
compilation unit.


-- 

tausq at debian dot org changed:

   What|Removed |Added

  Known to fail||4.0.2
  Known to work||3.3.5
Summary|[4.0 regression/hpux] gcc   |[4.0 regression/hpux] gcc
   |generates incorrect stabs   |generates incorrect stabs
   |debug output|debug output


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25258



[Bug debug/25258] [4.0 regression/hpux] gcc generates incorrect stabs debug output

2005-12-05 Thread tausq at debian dot org


--- Comment #2 from tausq at debian dot org  2005-12-06 05:47 ---
I'm guessing this is the patch that introduced this regression:

2004-08-20  Zack Weinberg  <[EMAIL PROTECTED]>
John David Anglin  <[EMAIL PROTECTED]>

* config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
one_only_data_section): Rename to som_readonly_data_section,
som_one_only_readonly_data_section and som_one_only_data_section.
* config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
conditional defines.
(som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
string values.
(pa_select_section): Use renamed section functions.
* config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
SOM_READONLY_DATA_SECTION_FUNCTION,
SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
Define here ...
* config/pa/som.h: ... not here.
(DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
(READONLY_DATA_SECTION): Use som_readonly_data_section.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25258



[Bug debug/24943] [hppa64] Bad dwarf output using non-preserved base register

2005-12-07 Thread tausq at debian dot org


--- Comment #2 from tausq at debian dot org  2005-12-08 05:26 ---
Some discussion about this PR is here:
http://gcc.gnu.org/ml/gcc-patches/2005-11/msg01563.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24943



[Bug c++/28620] New: [4.1 regression] static const member in template class leads to multiple definitions at linktime

2006-08-06 Thread tausq at debian dot org
with the attached testcase, during linking you get:
test2.o:(.data+0x0): multiple definition of `_ZN3BadIT_E2_yE'
test1.o:(.data+0x0): first defined here

this comes from a template class:
template 
class Bad {
static const int _y;
};

template  const int Bad::_y = 1023;

although this seems like a generic c++ problem, it was only observed on
hppa-linux and not on other platforms.

this test was simplified from a failure reported in building the quantlib
package against g++-4.1. With earlier g++ versions the package builds fine.


-- 
   Summary: [4.1 regression] static const member in template class
leads to multiple definitions at linktime
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tausq at debian dot org
 GCC build triplet: hppa-unknown-linux
  GCC host triplet: hppa-unknown-linux
GCC target triplet: hppa-unknown-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28620



[Bug c++/28620] [4.1 regression] static const member in template class leads to multiple definitions at linktime

2006-08-06 Thread tausq at debian dot org


--- Comment #1 from tausq at debian dot org  2006-08-06 10:07 ---
Created an attachment (id=12026)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12026&action=view)
testcase


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28620



[Bug c++/26957] [4.0/4.1/4.2 regression] ICE in make_decl_rtl, at varasm.c:871

2006-09-08 Thread tausq at debian dot org


--- Comment #13 from tausq at debian dot org  2006-09-08 15:04 ---
Works for me on the original test case (ACE package) and on the reduced test
case in #3. Tested on hppa-linux native.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26957



[Bug rtl-optimization/17264] [hppa] Missing address increment optimization for fp load/stores

2006-09-24 Thread tausq at debian dot org


--- Comment #4 from tausq at debian dot org  2006-09-24 23:49 ---
Fixed in gcc-4.x


-- 

tausq at debian dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17264



[Bug rtl-optimization/23369] New: [4.0.x regression] Generates wrong code for funcptr comparison

2005-08-12 Thread tausq at debian dot org
Compiling the attached testcase with gcc -O2 -S signals.c, the generated asm
contains:

.loc 1 51 0
bl __canonicalize_funcptr_for_compare,%r2
ldo -2(%r7),%r26
ldi -4,%r26
bl __canonicalize_funcptr_for_compare,%r2
copy %r28,%r4
.loc 1 52 0
.loc 1 51 0
comb,>>= %r28,%r4,.L15
ldi 0,%r28

"old" is assigned to %r7. Why is it subtracting 2 from it before passing it to
__cffc?

gcc-3.x does not have this problem.

This testcase was extracted from signals.c from glibc/linuxthreads, based on our
investigation of Debian BTS bug #321785

-- 
   Summary: [4.0.x regression] Generates wrong code for funcptr
comparison
   Product: gcc
   Version: 4.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tausq at debian dot org
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: hppa-unknown-linux
  GCC host triplet: hppa-unknown-linux
GCC target triplet: hppa-unknown-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23369


[Bug rtl-optimization/23369] [4.0.x regression] Generates wrong code for funcptr comparison

2005-08-12 Thread tausq at debian dot org

--- Additional Comments From tausq at debian dot org  2005-08-13 02:51 
---
Created an attachment (id=9487)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9487&action=view)
Testcase

Compile with gcc -O2 -S

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23369


[Bug rtl-optimization/23369] [4.0.x regression] Generates wrong code for funcptr comparison

2005-08-12 Thread tausq at debian dot org


-- 
   What|Removed |Added

   Keywords||wrong-code
  Known to fail||4.0.1
  Known to work||3.3.5


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23369


[Bug rtl-optimization/23369] [4.0.x regression] Generates wrong code for funcptr comparison

2005-08-12 Thread tausq at debian dot org

--- Additional Comments From tausq at debian dot org  2005-08-13 03:08 
---
The line of code in question is:

 51   if (old == SIG_IGN || old == SIG_DFL || old == SIG_ERR)

after preprocessing, this becomes

  if (old == ((__sighandler_t) 1) || old == ((__sighandler_t) 0) || old
== ((__sighandler_t) -1))

It appears gcc optimized out the the old == 0 case, and it does the right thing
for the old == 1 case. For the old == -1 case, it seems to subtract 2 from old,
and converts -1 to -4. 

Weird.

This also happens with -O1. Dave says it looks like the initial rtl generation
is wrong, so maybe this is not an optimization bug.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23369


[Bug rtl-optimization/23369] [4.0.x regression] Generates wrong code for funcptr comparison

2005-08-12 Thread tausq at debian dot org

--- Additional Comments From tausq at debian dot org  2005-08-13 03:46 
---
Created an attachment (id=9488)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9488&action=view)
Preprocessed source


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23369


[Bug middle-end/23369] [4.0/4.1 regression] build_range_check generates wrong code for funcptr comparison

2005-08-14 Thread tausq at debian dot org

--- Additional Comments From tausq at debian dot org  2005-08-15 05:31 
---
Do I understand correctly that there are two distinct problems:

1) gcc should not be canonicalizing constants casted as function pointers

2) gcc should not generate relational comparisons against function pointers

?

it seems from my quick tests that #1 is not affected by build_range_test (i.e.
something else is wrong).

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23369


[Bug c/34762] New: [4.2 regression] internal compiler error: in delete_output_reload, at reload1.c:7958

2008-01-12 Thread tausq at debian dot org
While building RPM on hppa with gcc-4.2, build fails with the captioned error.
Somewhat reduced testcase attached.

Builds fine with -O1 or without -fPIC, or with older compilers.

ffmpeg and squashfs also fail to build with a similar error (not always built
with  -fPIC)


-- 
   Summary: [4.2 regression] internal compiler error: in
delete_output_reload, at reload1.c:7958
   Product: gcc
   Version: 4.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tausq at debian dot org
 GCC build triplet: hppa-linux
  GCC host triplet: hppa-linux
GCC target triplet: hppa-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34762



[Bug c/34762] [4.2 regression] internal compiler error: in delete_output_reload, at reload1.c:7958

2008-01-12 Thread tausq at debian dot org


--- Comment #1 from tausq at debian dot org  2008-01-12 20:54 ---
Created an attachment (id=14931)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14931&action=view)
Testcase


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34762



[Bug target/26255] New: [3.3 regression] internal compiler error: in reload_cse_simplify_operands, at postreload.c:391

2006-02-12 Thread tausq at debian dot org
Ref: http://bugs.debian.org/352529

The attached testcase, reduced from the Debian BTS bug report, causes an ICE

bug.c: In function 'foo':
bug.c:31: error: insn does not satisfy its constraints:
(insn 156 35 37 0 (set (reg:HI 70 %fr23 [122])
(reg:HI 20 %r20)) 53 {*pa.md:2926} (nil)
(nil))
bug.c:31: internal compiler error: in reload_cse_simplify_operands, at
postreload.c:391
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.
For Debian GNU/Linux specific bug reporting instructions,
see .

 bug.c -
typedef short int16_t;

int round_sample(int *sum);

#define MULS(ra, rb) ((ra) * (rb))

#define SUM8(sum, op, w, p) \
{   \
sum op MULS((w)[0 * 64], p[0 * 64]);\
sum op MULS((w)[1 * 64], p[1 * 64]);\
sum op MULS((w)[2 * 64], p[2 * 64]);\
sum op MULS((w)[3 * 64], p[3 * 64]);\
sum op MULS((w)[4 * 64], p[4 * 64]);\
sum op MULS((w)[5 * 64], p[5 * 64]);\
sum op MULS((w)[6 * 64], p[6 * 64]);\
sum op MULS((w)[7 * 64], p[7 * 64]);\
}

void foo(int *dither_state, int *samples)
{
int16_t *synth_buf;
const int16_t *w, *p;
int sum;

sum = *dither_state;
p = synth_buf + 16;
SUM8(sum, +=, w, p);
p = synth_buf + 48;
SUM8(sum, -=, w + 32, p);
*samples = round_sample(&sum);
}
 bug.c -
$ cc -O2 -c bug.c
bug.c: In function 'foo':
bug.c:31: error: insn does not satisfy its constraints:
(insn 156 35 37 0 (set (reg:HI 70 %fr23 [122])
(reg:HI 20 %r20)) 53 {*pa.md:2926} (nil)
(nil))
bug.c:31: internal compiler error: in reload_cse_simplify_operands, at
postreload.c:391
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.
For Debian GNU/Linux specific bug reporting instructions,
see .

Problem only happens with -O2.


-- 
   Summary: [3.3 regression] internal compiler error: in
reload_cse_simplify_operands, at postreload.c:391
   Product: gcc
   Version: 4.0.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
    ReportedBy: tausq at debian dot org
 GCC build triplet: hppa-linux
  GCC host triplet: hppa-linux
GCC target triplet: hppa-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26255



[Bug target/26255] [4.0 regression] internal compiler error: in reload_cse_simplify_operands, at postreload.c:391

2006-02-12 Thread tausq at debian dot org


--- Comment #1 from tausq at debian dot org  2006-02-13 05:13 ---
I forgot to mention that this bug does not happen with the 20060104 snapshot of
gcc-4.0_branch (Debian 4.0.2-6), only with 20060128 (Debian 4.0.2-8)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26255



[Bug target/26255] [4.0 regression] internal compiler error: in reload_cse_simplify_operands, at postreload.c:391

2006-02-14 Thread tausq at debian dot org


--- Comment #6 from tausq at debian dot org  2006-02-15 05:50 ---
Will this go into the 4.0 branch too?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26255



[Bug debug/26330] New: gcc generates code that does not allow retrieval of struct arguments with debugger

2006-02-16 Thread tausq at debian dot org
Given the following code from gdb's funcargs test:

typedef struct s
{
  short s;
  int i;
  long l;
} SVAL;

void recurse (SVAL a, int depth)
{
  a.s = a.i = a.l = --depth;
  if (depth == 0)
hitbottom ();
  else
recurse (a, depth);
}

compiled with -g

gcc-4.0 does not emit a dwarf location for the 'a' argument:

$ readelf -wi funcargs
[]
 <2><1921>: Abbrev Number: 11 (DW_TAG_formal_parameter)
 DW_AT_name: a
 DW_AT_decl_file   : 1
 DW_AT_decl_line   : 612
 DW_AT_type: <18e0>

in gcc-3.x, you will get one more dwarf attribute:
 DW_AT_location: 3 byte block: 91 18 6  (DW_OP_fbreg: 24; DW_OP_deref)

The difference is that in gcc 3.x, the first argument is first copied from the
incoming argument register to the stack. In gcc-4.x the generated code does not
do this stack save and uses the incoming register directly (actually it first
copies it to a scratch register).


-- 
   Summary: gcc generates code that does not allow retrieval of
struct arguments with debugger
   Product: gcc
   Version: 4.0.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tausq at debian dot org
 GCC build triplet: hppa-unknown-linux
  GCC host triplet: hppa-unknown-linux
GCC target triplet: hppa-unknown-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26330



[Bug target/26743] New: gcc generates unreachable branch

2006-03-18 Thread tausq at debian dot org
gcc -O2 -c hamlibperl_wrap.i gives:
/tmp/ccxskRBB.s: Assembler messages:
/tmp/ccxskRBB.s:232018: Error: Field out of range [-262144..262143] (319532).
/tmp/ccxskRBB.s:312290: Error: Field out of range [-262144..262143] (-320952).

The problem happens with gcc-3.3.6, gcc-3.4.5, gcc-4.0.3 and gcc-4.1.0


-- 
   Summary: gcc generates unreachable branch
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tausq at debian dot org
 GCC build triplet: hppa-unknown-linux
  GCC host triplet: hppa-unknown-linux
GCC target triplet: hppa-unknown-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26743



[Bug target/26743] gcc generates unreachable branch

2006-03-18 Thread tausq at debian dot org


--- Comment #1 from tausq at debian dot org  2006-03-18 10:14 ---
Created an attachment (id=11066)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11066&action=view)
testcase


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26743



[Bug target/26743] gcc generates unreachable branch

2006-03-19 Thread tausq at debian dot org


--- Comment #3 from tausq at debian dot org  2006-03-19 15:52 ---
I think this is a bit different, the bit of code that causes the problem is:

 339796 .loc 1 38663 0
 339797 or,<> %r28,%r0,%r3
 339798 b .L25049
 339799 copy %r4,%r19

This bit of code is (I think) generated by output_movb() in pa.c, which doesn't
check if the branch target is reachable.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26743



[Bug debug/24943] [hppa64] Bad dwarf output using non-preserved base register

2006-03-19 Thread tausq at debian dot org


--- Comment #5 from tausq at debian dot org  2006-03-20 02:34 ---
Indeed, as Dave said this is a different and not yet fixed problem.


-- 

tausq at debian dot org changed:

   What|Removed |Added

  Known to fail|3.3.4 4.0.1 |3.3.4 4.0.1 4.1.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24943



[Bug rtl-optimization/26945] New: [3.4/4.0/4.1 regression] Attempt to delete prologue/epilogue insn

2006-03-30 Thread tausq at debian dot org
Compile attached test case with optimization causes an ICE:

$ gcc -c -O1 bug.c
bug.c: In function 'parsearguments':
bug.c:46: error: Attempt to delete prologue/epilogue insn:
(insn/f 97 96 98 0 (set (mem:SI (plus:SI (reg/f:SI 30 %r30)
(const_int -124 [0xff84])) [0 S4 A32])
(reg:SI 4 %r4)) -1 (nil)
(nil))
bug.c:46: internal compiler error: in propagate_one_insn, at flow.c:1690
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.
For Debian GNU/Linux specific bug reporting instructions,
see .

This may be related to PR12535 but the code that triggers the problem is
different.


-- 
   Summary: [3.4/4.0/4.1 regression] Attempt to delete
prologue/epilogue insn
   Product: gcc
   Version: 4.0.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
    ReportedBy: tausq at debian dot org
 GCC build triplet: hppa-unknown-linux
  GCC host triplet: hppa-unknown-linux
GCC target triplet: hppa-unknown-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26945



[Bug rtl-optimization/26945] [3.4/4.0/4.1 regression] Attempt to delete prologue/epilogue insn

2006-03-30 Thread tausq at debian dot org


--- Comment #1 from tausq at debian dot org  2006-03-30 16:28 ---
Created an attachment (id=11167)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11167&action=view)
testcase


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26945



[Bug rtl-optimization/26945] [3.4/4.0/4.1 regression] Attempt to delete prologue/epilogue insn

2006-03-30 Thread tausq at debian dot org


--- Comment #2 from tausq at debian dot org  2006-03-30 16:31 ---
The code is valid syntactically, but there is actually a bug. the longoptions
array only has 3 elements, but we try to fill in 4 entries. if we make the
longoptions array bigger than it doesn't cause the ICE.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26945



[Bug c++/26957] New: [4.0 regression] ICE in make_decl_rtl, at varasm.c:871

2006-03-30 Thread tausq at debian dot org
$ g++ -c bug.cc
bug.cc: In member function 'void
TAO_DynCommon::_ZTv0_n100_N13TAO_DynCommon17insert_longdoubleEN7ACE_CDR10LongDoubleE(CORBA::LongDouble)':
bug.cc:28887: internal compiler error: in make_decl_rtl, at varasm.c:871
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.
For Debian GNU/Linux specific bug reporting instructions,
see .

Testcase is extracted from the "ace" package on Debian.


-- 
   Summary: [4.0 regression] ICE in make_decl_rtl, at varasm.c:871
   Product: gcc
   Version: 4.0.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tausq at debian dot org
 GCC build triplet: hppa-unknown-linux
  GCC host triplet: hppa-unknown-linux
GCC target triplet: hppa-unknown-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26957



[Bug c++/26957] [4.0 regression] ICE in make_decl_rtl, at varasm.c:871

2006-03-30 Thread tausq at debian dot org


--- Comment #1 from tausq at debian dot org  2006-03-30 23:52 ---
Created an attachment (id=11171)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11171&action=view)
Testcase


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26957



[Bug tree-optimization/22051] New: [4.0 regression] Wrong code for function pointer comparision during optimization

2005-06-13 Thread tausq at debian dot org
with the following test program, gcc-4.0 doesn't emit the required function
canonicalization code (calls to __canonicalize_funcptr_for_compare) to do the
comparison when optimization is enabled.

[EMAIL PROTECTED]:/tmp/dl$ gcc-3.3 -D_GNU_SOURCE -O2 -o default default.c -ldl;
./default; echo $?
0

[EMAIL PROTECTED]:/tmp/dl$ gcc-4.0 -D_GNU_SOURCE -O2 -o default default.c -ldl;
./default; echo $?
1


#include 
#include 

int
main (int argc, char *argv[])
{
  void *p;

  /* Find function `main'.  */
  p = dlsym (RTLD_DEFAULT, "main");
  if (p == NULL)
return -1;
  else if ((int (*)(int, char **))p != main)
return 1;
  else
return 0;
 }

-- 
   Summary: [4.0 regression] Wrong code for function pointer
comparision during optimization
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
    ReportedBy: tausq at debian dot org
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: hppa-unknown-linux
  GCC host triplet: hppa-unknown-linux
GCC target triplet: hppa-unknown-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22051


[Bug tree-optimization/22051] [4.0 regression/hppa-linux] Wrong code for function pointer comparision during optimization

2005-06-13 Thread tausq at debian dot org


-- 
   What|Removed |Added

  Known to fail||4.0.0
  Known to work||3.3.5
Summary|[4.0 regression] Wrong code |[4.0 regression/hppa-linux]
   |for function pointer|Wrong code for function
   |comparision during  |pointer comparision during
   |optimization|optimization


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22051


[Bug middle-end/22051] [4.0/4.1 regression] Wrong code for function pointer comparision during optimization

2005-06-13 Thread tausq at debian dot org

--- Additional Comments From tausq at debian dot org  2005-06-13 16:23 
---
this is what you get with gcc-3.3:

.LC0:
.stringz"main"
.section.rodata.cst4,"aM",@progbits,4
.align 4
.LC1:
.word   P%main
[...]
ldil LR'.LC0,%r25
ldi -1,%r4
bl dlsym,%r2
ldo RR'.LC0(%r25),%r25
comib,= 0,%r28,.L1
copy %r28,%r26
bl __canonicalize_funcptr_for_compare,%r2
nop
ldil LR'.LC1,%r19
copy %r28,%r4
bl __canonicalize_funcptr_for_compare,%r2
ldw RR'.LC1(%r19),%r26
comclr,= %r28,%r4,%r4
ldi 1,%r4
.L1:
copy %r4,%r28


And with gcc-4.0, you get instead:
.LC0:
.stringz"main"
.section.rodata.cst4,"aM",@progbits,4
.align 4
.LC1:
.word   P%main
[...]
ldil LR'.LC0,%r25
bl dlsym,%r2
ldo RR'.LC0(%r25),%r25
movb,= %r28,%r20,.L4
ldi -1,%r19
ldil LR'.LC1,%r28
ldw RR'.LC1(%r28),%r19
comclr,= %r19,%r20,%r19
ldi 1,%r19
.L4:
copy %r19,%r28



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22051


[Bug debug/15860] [3.3/3.4/4.0 regression] No DW_AT_location debug info is emitted for formal arguments to a function that uses "register" qualifiers

2004-10-13 Thread tausq at debian dot org

--- Additional Comments From tausq at debian dot org  2004-10-13 21:24 ---
Verified with gcc-3.4.1 and gdb-6.2.1 on hppa-linux. Thanks Richard.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15860


[Bug middle-end/17564] [4.0 Regression] New treatment of function pointers when used with equality operators

2004-11-10 Thread tausq at debian dot org


-- 
   What|Removed |Added

 CC||tausq at debian dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17564


[Bug c++/18509] New: [hppa] try-catch program fails when compiled with frame pointers

2004-11-15 Thread tausq at debian dot org
[EMAIL PROTECTED]:/tmp$ g++ -o try_catch try_catch.cc
[EMAIL PROTECTED]:/tmp$ ./try_catch
Segmentation fault (core dumped)

[EMAIL PROTECTED]:/tmp$ g++ -fomit-frame-pointer -o try_catch try_catch.cc
[EMAIL PROTECTED]:/tmp$ ./try_catch
[EMAIL PROTECTED]:/tmp$ 

[EMAIL PROTECTED]:/tmp$ g++ -O1 -fno-omit-frame-pointer -o try_catch 
try_catch.cc
[EMAIL PROTECTED]:/tmp$ ./try_catch
free(): invalid pointer 0xbff004b8!
Segmentation fault (core dumped)
[EMAIL PROTECTED]:/tmp$

The same problem is seen in 3.0, but not in gcc-3.4.

-- 
   Summary: [hppa] try-catch program fails when compiled with frame
pointers
   Product: gcc
   Version: 3.3.5
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tausq at debian dot org
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: hppa-unknown-linux
  GCC host triplet: hppa-unknown-linux
GCC target triplet: hppa-unknown-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18509


[Bug c++/18509] [hppa] try-catch program fails when compiled with frame pointers

2004-11-15 Thread tausq at debian dot org

--- Additional Comments From tausq at debian dot org  2004-11-16 00:07 
---
Created an attachment (id=7550)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=7550&action=view)
Test case


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18509


[Bug target/18509] [3.3 only] [hppa] try-catch program fails when compiled with frame pointers

2004-11-15 Thread tausq at debian dot org

--- Additional Comments From tausq at debian dot org  2004-11-16 00:55 
---
(In reply to comment #3)
> I don't believe there have been any specific changes to the backend
> with respect to exception support since 3.3.0.  3.0 didn't have dwarf2
> EH support.  There possibly have been some changes in the libstdc++
> support.
> 
> Which exception model (sjlj or dwarf2) are you using?

sjlj for gcc-3.3. now that you mention it, i see that my 3.4 compiler is
compiled to use dwarf2. 

i don't have a sjlj-compiled gcc-3.4 compiler handy... but i can try it if that
will help.

randolph

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18509


[Bug debug/18856] New: Missing .loc information after prologue

2004-12-06 Thread tausq at debian dot org
The attached program is extracted from the gdb testsuite (gdb.base/annota3.c)

According to Dan, the code generated by gcc is missing a .loc directive:
http://sources.redhat.com/ml/gdb-patches/2004-12/msg00143.html

i.e. gcc generates:

.loc 1 6 0
handle_USR1:
.PROC
.CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
.ENTRY
copy %r3,%r1
.LCFI0:
copy %r30,%r3
.LCFI1:
stwm %r1,64(%r30)
.LCFI2:
stw %r26,-36(%r3)
ldo 64(%r3),%r30
ldwm -64(%r30),%r3
bv,n %r0(%r2)
.EXIT
.PROCEND

but there should be another
.loc 1 6 0
before the ldo insn.

gcc-3.4 handles this properly.

-- 
   Summary: Missing .loc information after prologue
   Product: gcc
   Version: 3.3.5
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tausq at debian dot org
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: hppa-unknown-linux
  GCC host triplet: hppa-unknown-linux
GCC target triplet: hppa-unknown-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18856


[Bug debug/18856] Missing .loc information after prologue

2004-12-06 Thread tausq at debian dot org

--- Additional Comments From tausq at debian dot org  2004-12-06 18:50 
---
Created an attachment (id=7692)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=7692&action=view)
test case


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18856


[Bug debug/18856] Missing .loc information after prologue

2004-12-06 Thread tausq at debian dot org


-- 
   What|Removed |Added

  Known to work||3.4.2


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18856


[Bug debug/18856] [3.3 only, regression] Missing .loc information after prologue

2004-12-06 Thread tausq at debian dot org


-- 
   What|Removed |Added

  Known to work|3.4.2   |3.0.4 3.4.2
Summary|[3.3 only] Missing .loc |[3.3 only, regression]
   |information after prologue  |Missing .loc information
   ||after prologue


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18856