[Bug tree-optimization/41881] [4.5/4.6 regression] Complete unrolling (inner) versus vectorization of reduction

2010-08-10 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2010-08-10 16:01 ---
Verified on x86_64 using:

gcc-4.3 -O3 -o 43.s -S reduc.c -ftree-vectorizer-verbose=1
[two loops vectorized]
gcc-4.4 -O3 -o 43.s -S reduc.c -ftree-vectorizer-verbose=1
[one loop vectorized]


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||irar at gcc dot gnu dot org
  Known to fail||4.4.4
  Known to work||4.3.5
Summary|Complete unrolling (inner)  |[4.5/4.6 regression]
   |versus vectorization of |Complete unrolling (inner)
   |reduction   |versus vectorization of
   ||reduction


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



[Bug middle-end/45017] miscompile with bitfield and optimization

2010-07-22 Thread drow at gcc dot gnu dot org


--- Comment #7 from drow at gcc dot gnu dot org  2010-07-23 02:49 ---
FYI, confirmed to fail for ColdFire.


-- 


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



[Bug debug/44113] bad debugging information for unrolled loops

2010-05-19 Thread drow at gcc dot gnu dot org


--- Comment #8 from drow at gcc dot gnu dot org  2010-05-19 18:08 ---
It seems to me that a series of line notes for each copy of line 5 are the
right debug output, and if GCC can generate that, someone should hack up GDB
until it recognizes that and treats it sensibly.


-- 


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



[Bug debug/43628] [4.5 Regression] in-class func-ptr type parameter has unspecified DW_AT_type

2010-04-04 Thread drow at gcc dot gnu dot org


--- Comment #2 from drow at gcc dot gnu dot org  2010-04-04 15:45 ---
FYI, this patch also fixes a number of failures in cpexprs.exp in GDB. 
Testcase:

struct s
{
  bool operator!= (s const o) const { return false; }
};

bool
func (const struct s arg, const struct s right)
{
  return arg != right;
}

The THIS argument of operator!= gets a valid type.  The O argument gets the
self-typedef, and produces a DW_TAG_const_type with no type argument.

I'd say an assertion in modified_type_die after creating a new const or
volatile DIE with sub_die == NULL would be appropriate, if it weren't for the
ERROR_MARK handling... I don't know if we get here after errors.


-- 


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



[Bug debug/43521] java: this pointer not marked with DW_AT_artificial

2010-03-25 Thread drow at gcc dot gnu dot org


--- Comment #1 from drow at gcc dot gnu dot org  2010-03-25 18:47 ---
Interesting note: if this case had an abstract origin instead of a
specification, then 15e and 173 would both have DW_AT_abstract_origin, and the
DW_AT_artificial would be inherited.  As it is, though, the debug info is
wrong.


-- 


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



[Bug rtl-optimization/42575] arm-eabi-gcc 64-bit multiply weirdness

2010-02-22 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2010-02-22 21:06 ---
(In reply to comment #3)
 * What is the purpose of insn 12 here?  It looks to me like this is dead code,
 since r5 is restored in insn 38 (although, not knowing ARM so well, I may be
 wrong).

I couldn't figure this out either.  Where did it come from - was it so late
that we never DCE'd it, or does something bizarre claim to be dependent on the
value?

 Note how the sched1 pass has switched the two insns around. The register
 allocator now decides to use two new registers here, because r0 and r3 are 
 both
 live. After RA, sched2 switches insn 9 and insn 10 again, and r2 and r3 become
 available in insn 10 -- but this is too late.
 
 Question for the ARM maintainer now is: Why does sched1 want to swap insns 9
 and 10, when sched2 wants to swap them back again?

I'm guessing, but presumably we want to separate the mul from the mla because
they're dependent; the umull isn't.  But I don't know what would swap them back
again and that's probably the crux.


-- 


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



[Bug debug/27160] Debugging output forgets scope for typedefs.

2010-02-22 Thread drow at gcc dot gnu dot org


--- Comment #3 from drow at gcc dot gnu dot org  2010-02-22 21:34 ---
Works for me too, using GCC 4.4.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/38785] [4.3/4.4/4.5 Regression] huge performance regression on EEMBC bitmnp01

2010-02-19 Thread drow at gcc dot gnu dot org


--- Comment #24 from drow at gcc dot gnu dot org  2010-02-19 14:08 ---
If no one else has EEMBC available, ask me and we can verify any fix.  We've
been using Steven's and Joern's patches; we tried other approaches, but in the
end we weren't able to come up with any other approach that worked as well.


-- 


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



[Bug libstdc++/15047] libstdc++ testing does not work remotely

2010-02-15 Thread drow at gcc dot gnu dot org


--- Comment #15 from drow at gcc dot gnu dot org  2010-02-15 14:34 ---
I no longer care whether this works; I don't do build-tree testing.  It's
probably still broken, but with no one using it, closing as WONTFIX.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||WONTFIX


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



[Bug debug/43053] New: DWARF info adds bogus const to 'this' argument

2010-02-12 Thread drow at gcc dot gnu dot org
Compile this code (from the GDB testsuite) with G++ (tested 4.4.3, trunk):

class foo {
public:
  int overload1arg (char);
};


int main ()
{
foo foo_instance1;
return 0;
}

int foo::overload1arg (char arg){ arg = 0; return 2;}

Here's the relevant bit of debug info:

 22d: Abbrev Number: 3 (DW_TAG_subprogram)
2e   DW_AT_external: 1
2f   DW_AT_name: (indirect string, offset: 0x59): overload1arg
33   DW_AT_decl_file   : 1
34   DW_AT_decl_line   : 3
35   DW_AT_MIPS_linkage_name: (indirect string, offset: 0x0):
_ZN3foo12overload1argEc
39   DW_AT_type: 0x4b
3d   DW_AT_declaration : 1
 33e: Abbrev Number: 4 (DW_TAG_formal_parameter)
3f   DW_AT_type: 0x52
43   DW_AT_artificial  : 1
 344: Abbrev Number: 5 (DW_TAG_formal_parameter)
45   DW_AT_type: 0x58

 194: Abbrev Number: 12 (DW_TAG_subprogram)
95   DW_AT_specification: 0x2d
99   DW_AT_decl_line   : 13
9a   DW_AT_low_pc  : 0xe
9e   DW_AT_high_pc : 0x25
a2   DW_AT_frame_base  : 0x38 (location list)
a6   DW_AT_sibling : 0xc6
 2aa: Abbrev Number: 13 (DW_TAG_formal_parameter)
ab   DW_AT_name: (indirect string, offset: 0x66): this
af   DW_AT_type: 0xc6
b3   DW_AT_artificial  : 1
b4   DW_AT_location: 2 byte block: 91 0   (DW_OP_fbreg: 0)
 2b7: Abbrev Number: 14 (DW_TAG_formal_parameter)
b8   DW_AT_name: arg
bc   DW_AT_decl_file   : 1
bd   DW_AT_decl_line   : 13
be   DW_AT_type: 0x58
c2   DW_AT_location: 2 byte block: 91 64  (DW_OP_fbreg: -28)
 1c6: Abbrev Number: 15 (DW_TAG_const_type)
c7   DW_AT_type: 0x52

The in-class declaration of foo::overload1arg function has two arguments, of
types 0x52 and 0x58.  The out of line version references that with
DW_AT_specification, but has argument types 0xc6 and 0x58.  The
specification has a foo * argument, the implementation has a foo * const
argument.

'this' can not be modified, so arguably the const is right.  But it should be
consistent between the two DIEs.


-- 
   Summary: DWARF info adds bogus const to 'this' argument
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: wrong-debug
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org


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



[Bug debug/37237] Debug information for virtual destructors omits DW_AT_vtable_elem_location

2010-02-12 Thread drow at gcc dot gnu dot org


--- Comment #2 from drow at gcc dot gnu dot org  2010-02-12 15:52 ---
The type of the class only contains one destructor.  If you have to pick one
for a debugger to call, in-charge makes the most sense.  For other debugger
purposes they all make equal sense (or nonsense).

If you want to represent all three in the debug info, then not only do we need
to know that they are clones of the same function, we also need to know which
one is the in-charge versus not-in-charge versus deleting destructor to call
the right one for debugger implementation of the delete statement.

I'm pretty sure that would require new debug info extensions and new debugger
support.


-- 


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



[Bug tree-optimization/43001] Missed vectorization on ARM NEON

2010-02-08 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2010-02-08 22:14 ---
With -fmloat-abi=softfp, it looks to me like this is vectorized correctly on
trunk.  It's a little unintuitive because it becomes a left vector shift by
249 == -7.


-- 


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



[Bug target/40887] GCC generates suboptimal code for indirect function calls on ARM

2010-01-07 Thread drow at gcc dot gnu dot org


--- Comment #10 from drow at gcc dot gnu dot org  2010-01-07 14:42 ---
Ramana, is this fixed or are you planning on applying it to more branches?


-- 


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



[Bug debug/42380] CFI statements vs. -pg

2009-12-16 Thread drow at gcc dot gnu dot org


--- Comment #3 from drow at gcc dot gnu dot org  2009-12-16 13:15 ---
The CFA also needs to be adjusted after __gnu_mcount_nc returns;
__gnu_mcount_nc is a pop instruction from the point-of-view of the caller.


-- 


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



[Bug tree-optimization/41881] New: Complete unrolling (inner) versus vectorization of reduction

2009-10-30 Thread drow at gcc dot gnu dot org
Here are two pretty straight-forward ways to write the same operation:

#define TYPE int

TYPE fun1(TYPE *x, TYPE *y, unsigned int n)
{
  int i, j;
  TYPE dot = 0;

  for (i = 0; i  n; i++)
dot += *(x++) * *(y++);

  return dot;
}

TYPE fun2(TYPE *x, TYPE *y, unsigned int n)
{
  int i, j;
  TYPE dot = 0;

  for (i = 0; i  n / 8; i++)
for (j = 0; j  8; j++)
  dot += *(x++) * *(y++);

  return dot;
}

GCC 4.3 can vectorize both of them.  GCC 4.4 can only vectorize fun1.  I figure
this is why:

reduc.c:17: note: === vect_analyze_scalar_cycles ===
reduc.c:17: note: Analyze phi: dot_103 = PHI dot_110(5), 0(3)

reduc.c:17: note: Access function of PHI: {0, +, ((D.1621_32 + D.1621_43) +
D.1621_54) + D.1621_65)
+ D.1621_76) + D.1621_87) + D.1621_98) + D.1621_109}_1
reduc.c:17: note: step: ((D.1621_32 + D.1621_43) + D.1621_54) + D.1621_65)
+ D.1621_76) + D.1621_87)
 + D.1621_98) + D.1621_109,  init: 0
reduc.c:17: note: step unknown.

The cunrolli pass (which there is no way to disable) has completely unrolled
the inner loop.  Vectorizer SLP support can not handle the unrolled version of
the loop.

Also observed on ARM NEON with TYPE == float.


-- 
   Summary: Complete unrolling (inner) versus vectorization of
reduction
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org
GCC target triplet: x86_64-linux


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



[Bug tree-optimization/41881] Complete unrolling (inner) versus vectorization of reduction

2009-10-30 Thread drow at gcc dot gnu dot org


--- Comment #3 from drow at gcc dot gnu dot org  2009-10-30 22:41 ---
Subject: Re:  Complete unrolling (inner)
 versus vectorization of reduction

On Fri, Oct 30, 2009 at 10:20:46PM -, rguenth at gcc dot gnu dot org wrote:
 You could use -O2 -ftree-vectorize.

No:

static bool
gate_tree_complete_unroll_inner (void)
{
  return optimize = 2;
}


-- 


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



[Bug rtl-optimization/36712] Inefficient loop unrolling

2009-10-15 Thread drow at gcc dot gnu dot org


--- Comment #7 from drow at gcc dot gnu dot org  2009-10-15 12:12 ---
I really would like to see this submitted - at least as a starting point for
discussion.  You don't need to do anything different than for a small patch; if
you've missed any steps, a reviewer will tell you.

Another problem I noticed is that if RTL loop unrolling unrolls a loop, only
the first iteration will use auto-inc patterns.  This leads to silly omissions
in the assembly.


-- 


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



[Bug tree-optimization/38785] [4.3/4.4/4.5 Regression] huge performance regression on EEMBC bitmnp01

2009-07-23 Thread drow at gcc dot gnu dot org


--- Comment #17 from drow at gcc dot gnu dot org  2009-07-23 21:50 ---
Steven, have you had time for this?  Anything we can do to help?


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||steven at gcc dot gnu dot
   ||org, drow at gcc dot gnu dot
   ||org


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



[Bug tree-optimization/40768] PRE backfires when given a sequence of if statements

2009-07-15 Thread drow at gcc dot gnu dot org


--- Comment #3 from drow at gcc dot gnu dot org  2009-07-15 21:30 ---
Hi Steven,

Maybe I'm missing something, but what do patches talking about
SMALL_REGISTER_CLASSES have to do with this issue?  For ARM, the registers
involved are general purpose and ! SMALL_REGISTER_CLASSES.  There's about 14 of
them available, and these PHIs want a virtually unbounded number of registers. 
And we are not optimizing for size (-O3).  So I can't see how your patch is
going to help.

Don't get me wrong, I'm happy to close it again if they will :-)  But I don't
think either of the checks in want_to_pre_p will apply.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|DUPLICATE   |


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



[Bug target/40672] constant address loads moved into loop unnecessarily

2009-07-07 Thread drow at gcc dot gnu dot org


--- Comment #1 from drow at gcc dot gnu dot org  2009-07-07 15:03 ---
It looks, roughly speaking, like the two nearby addresses are initially
commonized.  In the process, the use after the loop ends up sharing a REG with
the use in the loop.  Then the use in the loop is changed to use a new copy,
and the initialization in the loop feeds the out-of-loop copy.  And the use in
the loop gets materialized above the loop as it should.

In a quick look I didn't work out which RTL pass is at fault.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||drow at gcc dot gnu dot org


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



[Bug debug/40573] DWARF for inlined subroutines refers to the outlined copy

2009-06-30 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2009-06-30 14:19 ---
It looks like you're right.  Jan K. recently added support to GDB to attach the
unreferenced children of abstract DIEs to each concrete instance, and that
caused my existing test case to fail in a new way.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.4/4.5 Regression] DWARF  |DWARF for inlined
   |for inlined subroutines |subroutines refers to the
   |refers to the outlined copy |outlined copy


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



[Bug debug/40573] DWARF for inlined subroutines refers to the outlined copy

2009-06-30 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2009-06-30 14:21 ---
(In reply to comment #3)
 Hmm, I tought GCC was doing the same thing for years.  So we need
 abstract function for each inline?

Why?  I think we each inlined copy (and the outlined copy) to refer to the one
abstract copy.  The problem is the links from the inlined copies to the
outlined copy.

Meanwhile I'll try to work around this in GDB.


-- 


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



[Bug debug/40573] DWARF for inlined subroutines refers to the outlined copy

2009-06-30 Thread drow at gcc dot gnu dot org


--- Comment #7 from drow at gcc dot gnu dot org  2009-06-30 17:52 ---
Subject: Re:  DWARF for inlined subroutines refers to the
 outlined copy

On Tue, Jun 30, 2009 at 04:29:25PM -, jakub at gcc dot gnu dot org wrote:
 
 
 --- Comment #6 from jakub at gcc dot gnu dot org  2009-06-30 16:29 ---
 Created an attachment (id=18101)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18101action=view)
  -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18101action=view)
 gcc45-pr40573.patch
 
 Does this patch do what you wanted to see?

No changes in the (patched to handle earlier GCC) GDB testsuite -
good.  No visible changes in the testcase DWARF either - bad.

 21a6: Abbrev Number: 3 (DW_TAG_formal_parameter)
1a7   DW_AT_name: (indirect string, offset: 0xcc): arg1
1ab   DW_AT_decl_file   : 1
1ac   DW_AT_decl_line   : 22
1ad   DW_AT_type: 0x1bd

 21f4: Abbrev Number: 10 (DW_TAG_formal_parameter)
1f5   DW_AT_abstract_origin: 0x1a6
1f9   DW_AT_location: 1 byte block: 53(DW_OP_reg3)

 42f7: Abbrev Number: 13 (DW_TAG_formal_parameter)
2f8   DW_AT_abstract_origin: 0x1f4

should be 0x1a6.


-- 


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



[Bug debug/40573] DWARF for inlined subroutines refers to the outlined copy

2009-06-30 Thread drow at gcc dot gnu dot org


--- Comment #9 from drow at gcc dot gnu dot org  2009-06-30 18:59 ---
Subject: Re:  DWARF for inlined subroutines refers to the
 outlined copy

On Tue, Jun 30, 2009 at 06:13:16PM -, jakub at gcc dot gnu dot org wrote:
 Weird, the difference I get with the patch on the testcase at -O2 -g is
 attached.

You're right, my test run was foobar.  Your patch causes this:

-arg1 = 0
-(gdb) PASS: gdb.opt/inline-locals.exp: info args above bar (2)
+arg1 = value optimized out
+(gdb) FAIL: gdb.opt/inline-locals.exp: info args above bar (2)

Despite the appearance, this is good.  The previous result was luck, a
DW_AT_location in the out-of-line instance that used the same register
as in the inlined instance.  I hope VTA will fix this failure.


-- 


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



[Bug debug/40573] New: [4.4/4.5 Regression] DWARF for inlined subroutines refers to the outlined copy

2009-06-27 Thread drow at gcc dot gnu dot org
In the attached testcase (which will be added to the GDB testsuite), func1 is
both emitted as a function and inlined into main and func2.  The generated
DWARF output looks like this with mainline:

 11bf: Abbrev Number: 2 (DW_TAG_subprogram)
1c0   DW_AT_external: 1
1c1   DW_AT_name: (indirect string, offset: 0x11b): func1
1c5   DW_AT_decl_file   : 1
1c6   DW_AT_decl_line   : 22
1c7   DW_AT_prototyped  : 1
1c8   DW_AT_type: 0x1e8
1cc   DW_AT_inline  : 3   (declared as inline and inlined)
1cd   DW_AT_sibling : 0x1e8
 21d1: Abbrev Number: 3 (DW_TAG_formal_parameter)
1d2   DW_AT_name: (indirect string, offset: 0x10c): arg1
1d6   DW_AT_decl_file   : 1
1d7   DW_AT_decl_line   : 22
1d8   DW_AT_type: 0x1e8

 1202: Abbrev Number: 9 (DW_TAG_subprogram)
203   DW_AT_abstract_origin: 0x1bf
207   DW_AT_low_pc  : 0x4004a0
20f   DW_AT_high_pc : 0x4004e8
217   DW_AT_frame_base  : 0x0 (location list)
21b   DW_AT_sibling : 0x230
 221f: Abbrev Number: 10 (DW_TAG_formal_parameter)
220   DW_AT_abstract_origin: 0x1d1
224   DW_AT_location: 1 byte block: 53(DW_OP_reg3)

 2272: Abbrev Number: 12 (DW_TAG_inlined_subroutine)
273   DW_AT_abstract_origin: 0x1bf
277   DW_AT_entry_pc: 0x4004fa
27f   DW_AT_ranges  : 0x50
283   DW_AT_call_file   : 1
284   DW_AT_call_line   : 34
 3285: Abbrev Number: 13 (DW_TAG_formal_parameter)
286   DW_AT_abstract_origin: 0x21f

The problem is that the abstract origin of arg1 in the inlined copy (DIE at
0x285) refers to the outlined copy.  But this is not in the abstract subtree
referred to by the DIE at 0x272.

Two things go wrong in consequence.  GDB concludes that nothing in this subtree
refers to the DIE at 0x1d1 and stitches that DIE into the tree, resulting in a
second copy of arg1 (with no DW_AT_location).  This could be worked around in
GDB to compensate for the DWARF, but I'm convinced from the DWARF spec that the
nesting is invalid.  The other thing that goes wrong is even with the
workaround, we try to use the DW_AT_location from the outlined copy.  It works
by chance in 4.5; in 4.4 a location list was used instead of a register, so of
course the PC values in the location list do not apply.

Honza, Richi suggested on IRC that this might be related to your changes in
inline variable tracking.  Any idea?


-- 
   Summary: [4.4/4.5 Regression] DWARF for inlined subroutines
refers to the outlined copy
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org


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



[Bug debug/40573] [4.4/4.5 Regression] DWARF for inlined subroutines refers to the outlined copy

2009-06-27 Thread drow at gcc dot gnu dot org


--- Comment #1 from drow at gcc dot gnu dot org  2009-06-27 22:12 ---
Created an attachment (id=18083)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18083action=view)
Test case

Compile with -O2.


-- 


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



[Bug debug/40521] [4.4/4.5 Regression] -g causes GCC to generate .eh_frame

2009-06-23 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2009-06-23 12:24 ---
Subject: Re:  [4.4/4.5 Regression] -g causes GCC to
generate .eh_frame

On Tue, Jun 23, 2009 at 11:09:48AM -, jakub at gcc dot gnu dot org wrote:
 I think if we don't want to emit .eh_frame, we should just default to
 -fno-dwarf2-cfi-asm.  But if we do want to generate it, I fail to see what do
 we gain by also generating .debug_frame.  Duplicating the same info, in one
 case in a more compat form, doesn't look like a good idea.

That sounds reasonable.  At one point there was a proposal to emit
completely accurate unwind information for .debug_frame, and skip some
prologue/epilogue information in .eh_frame; if we do that, obviously
we need both sets of output, but otherwise we don't.

We should make this be consistent though, not depend on
-fno-dwarf2-cfi-asm.


-- 


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



[Bug rtl-optimization/9702] [ARM] Constant pools are not shared among functions

2009-06-23 Thread drow at gcc dot gnu dot org


--- Comment #7 from drow at gcc dot gnu dot org  2009-06-23 15:49 ---
Nope.  It would be somewhere between hard and impossible to do in the linker,
because these have to go in the middle of the .text section, and within
compile-time known offsets from the using functions (to accommodate limited
range pc-relative displacements).


-- 


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



[Bug debug/40521] New: [4.4/4.5 Regression] -g causes GCC to generate .eh_frame

2009-06-22 Thread drow at gcc dot gnu dot org
Put this in main.c and build it with a 4.4-branch compiler using recent
binutils:

int main ()
{
  return 0;
}

Versions:

GNU assembler (GNU Binutils) 2.19.51.20090611
i686-pc-linux-gnu-gcc (GCC) 4.4.1 20090611 (prerelease)

% i686-pc-linux-gnu-gcc -c main.c; objdump --wide -h main.o | grep ALLOC
  0 .text 000a      0034  2**2  CONTENTS,
ALLOC, LOAD, READONLY, CODE
  1 .data       0040  2**2  CONTENTS,
ALLOC, LOAD, DATA
  2 .bss        0040  2**2  ALLOC

% i686-pc-linux-gnu-gcc -c -g main.c; objdump --wide -h main.o | grep ALLOC
  0 .text 000a      0034  2**2  CONTENTS,
ALLOC, LOAD, READONLY, CODE
  1 .data       0040  2**2  CONTENTS,
ALLOC, LOAD, DATA
  2 .bss        0040  2**2  ALLOC
 12 .eh_frame 0034      01c0  2**2  CONTENTS,
ALLOC, LOAD, RELOC, READONLY, DATA

We're using GAS's .cfi_startproc et cetera directives to generate debug
information.  But they only generate .eh_frame, not .debug_frame.

I also noticed this problem on an ARM EABI target.  ARM EABI does not use
.eh_frame, only .debug_frame and .ARM.exidx.

The easiest fix is to disable use of the CFI directives when we are trying to
generate .debug_frame.  I believe GCC used to generate both .debug_frame and
.eh_frame for the same function.  If we want both to gain the advantages of
using CFI directives (e.g. potentially accurate across inline asm), then we
need to teach gas to emit .debug_frame/.eh_frame/both as requested.


-- 
   Summary: [4.4/4.5 Regression] -g causes GCC to generate .eh_frame
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org
GCC target triplet: i686-pc-linux-gnu


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



[Bug debug/40521] [4.4/4.5 Regression] -g causes GCC to generate .eh_frame

2009-06-22 Thread drow at gcc dot gnu dot org


--- Comment #1 from drow at gcc dot gnu dot org  2009-06-22 15:20 ---
CC'ing some people who know about CFI for opinions on the best resolution.  Do
we need a new gas option and/or CFI directive for this?


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rth at gcc dot gnu dot org,
   ||aoliva at gcc dot gnu dot
   ||org, jakub at gcc dot gnu
   ||dot org


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



[Bug debug/40521] [4.4/4.5 Regression] -g causes GCC to generate .eh_frame

2009-06-22 Thread drow at gcc dot gnu dot org


--- Comment #2 from drow at gcc dot gnu dot org  2009-06-22 15:22 ---
I've confirmed that older GCC emits both .debug_frame and .eh_frame.


-- 


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



[Bug fortran/36031] ARM -fshort-enums attribute not emitted for Fortran

2009-05-16 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2009-05-16 17:31 ---
Subject: Re:  ARM -fshort-enums attribute not emitted
for Fortran

On Sat, May 16, 2009 at 04:12:28PM -, fxcoudert at gcc dot gnu dot org
wrote:
 Probably fixed on trunk. Please reopen if not.

Thanks!  I forgot to leave a note on how I encountered this, and I
don't remember :-(


-- 


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



[Bug target/35296] init_expr_once suboptimal for Thumb

2009-05-12 Thread drow at gcc dot gnu dot org


--- Comment #2 from drow at gcc dot gnu dot org  2009-05-12 11:36 ---
Sorry, I don't know.


-- 


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



[Bug bootstrap/21751] [csl-arm-branch and HEAD] fails to bootstrap with EABI

2009-04-29 Thread drow at gcc dot gnu dot org


--- Comment #7 from drow at gcc dot gnu dot org  2009-04-29 16:40 ---
GLIBC patches are no longer required and I know folks have built
iwmmxt-targeted ARM Linux toolchains since this was filed.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME


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



[Bug rtl-optimization/34263] missed optimization: cleanup loop latch (SMS)

2009-04-04 Thread drow at gcc dot gnu dot org


--- Comment #2 from drow at gcc dot gnu dot org  2009-04-04 18:41 ---
If a patch was committed, can this bug be closed?


-- 


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



[Bug target/14202] [arm] Thumb __builtin_setjmp not interworking safe

2009-01-05 Thread drow at gcc dot gnu dot org


--- Comment #10 from drow at gcc dot gnu dot org  2009-01-05 18:34 ---
Right.  You would need an arm-elf (not arm-eabi) or arm-linux (not
arm-linux-gnueabi) toolchain to test this.  Those are slowly becoming
obsolete...


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |NEW
   Last reconfirmed|2005-07-02 01:31:50 |2009-01-05 18:34:01
   date||


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



[Bug debug/7081] DWARF enhancements for C++

2008-12-22 Thread drow at gcc dot gnu dot org


--- Comment #14 from drow at gcc dot gnu dot org  2008-12-22 13:46 ---
Part fixed, part refiled.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug debug/36748] scev const-prop pass adds bad line numbers

2008-12-06 Thread drow at gcc dot gnu dot org


--- Comment #3 from drow at gcc dot gnu dot org  2008-12-06 15:18 ---
I tried 4.4.0 20081130; it does not look fixed.

bb 8:
  # mult_acc.14_40 = PHI mult_acc.14_17(6)
  [break.c : 12] D.2737_41 = value_13 + -1;
  [break.c : 12] D.2738_42 = (unsigned int) D.2674_12;
  [break.c : 12] D.2739_43 = 2 - D.2738_42;
  [break.c : 12] D.2740_44 = (int) D.2739_43;
  value_39 = D.2737_41 + D.2740_44;

There are no references to code on line 13 or 25, which are the opening braces.
 But those lines are now associated with line 12 and 24, which are the
declarations of main and factorial respectively.  The references are still
introduced by scev.


-- 


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



[Bug debug/36748] scev const-prop pass adds bad line numbers

2008-12-06 Thread drow at gcc dot gnu dot org


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-12-06 15:19:06
   date||


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



[Bug bootstrap/38014] [4.4 Regression] in-tree gmp and mpfr libraries no longer work

2008-11-14 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2008-11-14 14:53 ---
Subject: Bug 38014

Author: drow
Date: Fri Nov 14 14:51:38 2008
New Revision: 141859

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141859
Log:
PR bootstrap/38014
PR bootstrap/37923

Revert:

2008-10-24  Daniel Jacobowitz  [EMAIL PROTECTED]

* Makefile.tpl (HOST_EXPORTS): Correct CPPFLAGS typo.
* Makefile.in: Regenerated.

2008-10-22  Daniel Jacobowitz  [EMAIL PROTECTED]

* Makefile.def (flags_to_pass): Add CPPFLAGS_FOR_BUILD and CPPFLAGS.
* Makefile.tpl (BUILD_EXPORTS): Set CPPFLAGS.
(EXTRA_BUILD_FLAGS): Correct typo.  Pass CPPFLAGS.
(HOST_EXPORTS): Pass CPPFLAGS.
(CPPFLAGS_FOR_BUILD, CPPFLAGS, CPPFLAGS_FOR_TARGET): Define.
(LDFLAGS_FOR_TARGET): Initialize from configure script.
(EXTRA_TARGET_FLAGS): Set CPPFLAGS.
* Makefile.in, configure: Regenerated.
* configure.ac: Set CPPFLAGS_FOR_TARGET, LDFLAGS_FOR_TARGET,
and CPPFLAGS_FOR_BUILD.

Modified:
trunk/ChangeLog
trunk/Makefile.def
trunk/Makefile.in
trunk/Makefile.tpl
trunk/configure
trunk/configure.ac


-- 


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



[Bug bootstrap/37923] [4.4 Regression] CPPFLAGS now unset for stage 1 build of libcpp files.

2008-11-14 Thread drow at gcc dot gnu dot org


--- Comment #34 from drow at gcc dot gnu dot org  2008-11-14 14:53 ---
Subject: Bug 37923

Author: drow
Date: Fri Nov 14 14:51:38 2008
New Revision: 141859

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141859
Log:
PR bootstrap/38014
PR bootstrap/37923

Revert:

2008-10-24  Daniel Jacobowitz  [EMAIL PROTECTED]

* Makefile.tpl (HOST_EXPORTS): Correct CPPFLAGS typo.
* Makefile.in: Regenerated.

2008-10-22  Daniel Jacobowitz  [EMAIL PROTECTED]

* Makefile.def (flags_to_pass): Add CPPFLAGS_FOR_BUILD and CPPFLAGS.
* Makefile.tpl (BUILD_EXPORTS): Set CPPFLAGS.
(EXTRA_BUILD_FLAGS): Correct typo.  Pass CPPFLAGS.
(HOST_EXPORTS): Pass CPPFLAGS.
(CPPFLAGS_FOR_BUILD, CPPFLAGS, CPPFLAGS_FOR_TARGET): Define.
(LDFLAGS_FOR_TARGET): Initialize from configure script.
(EXTRA_TARGET_FLAGS): Set CPPFLAGS.
* Makefile.in, configure: Regenerated.
* configure.ac: Set CPPFLAGS_FOR_TARGET, LDFLAGS_FOR_TARGET,
and CPPFLAGS_FOR_BUILD.

Modified:
trunk/ChangeLog
trunk/Makefile.def
trunk/Makefile.in
trunk/Makefile.tpl
trunk/configure
trunk/configure.ac


-- 


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



[Bug bootstrap/38014] [4.4 Regression] in-tree gmp and mpfr libraries no longer work

2008-11-14 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2008-11-14 15:37 ---
Patches reverted.  This is really a bug in gmp/mpfr/intl, but no point
triggering it.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug bootstrap/37923] [4.4 Regression] CPPFLAGS now unset for stage 1 build of libcpp files.

2008-11-14 Thread drow at gcc dot gnu dot org


--- Comment #35 from drow at gcc dot gnu dot org  2008-11-14 15:38 ---
Patches reverted.  This is really a bug in gmp/mpfr/intl, but no point
triggering it.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug bootstrap/37923] [4.4 Regression] CPPFLAGS now unset for stage 1 build of libcpp files.

2008-10-27 Thread drow at gcc dot gnu dot org


--- Comment #17 from drow at gcc dot gnu dot org  2008-10-27 13:55 ---
Subject: Re:  [4.4 Regression] CPPFLAGS now unset for
stage 1 build of libcpp files.

On Mon, Oct 27, 2008 at 03:37:27AM -, howarth at nitro dot med dot uc dot
edu wrote:
 already. I think the issue is that while both libcpp/configure of 20081016 and
 20081026 are
 properly setting CPPFLAGS in the libcpp/Makefile

No they're not.  Again, what is setting CPPFLAGS in libcpp?  The
project is supposed to build correctly with user specified CPPFLAGS,
just like CFLAGS.

A number of macros in config/ set CPPFLAGS=.  My guess is that the
path you want is coming from one of those, and they should be setting
some other variable.  E.g.

dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
dnl augments the CPPFLAGS variable.


-- 


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



[Bug bootstrap/37923] [4.4 Regression] CPPFLAGS now unset for stage 1 build of libcpp files.

2008-10-27 Thread drow at gcc dot gnu dot org


--- Comment #19 from drow at gcc dot gnu dot org  2008-10-27 14:13 ---
It won't be logged.

Paolo, any comment on the CPPFLAGS problem from comment 17?  I want the top
level CPPFLAGS passed down, because that's how users can add additional -I
arguments.  But it seems typical to do CPPFLAGS = foo @CPPFLAGS@ in
subdirectories, or put foo in @CPPFLAGS@ in the subdirectory configure script,
which loses foo now.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||bonzini at gnu dot org


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



[Bug bootstrap/37923] [4.4 Regression] CPPFLAGS now unset for stage 1 build of libcpp files.

2008-10-26 Thread drow at gcc dot gnu dot org


--- Comment #10 from drow at gcc dot gnu dot org  2008-10-27 02:45 ---
Do you have:

2008-10-24  Daniel Jacobowitz  [EMAIL PROTECTED]

* Makefile.tpl (HOST_EXPORTS): Correct CPPFLAGS typo.
* Makefile.in: Regenerated.

What was previously setting CPPFLAGS?  I don't see anything in your command
line that would.


-- 


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



[Bug rtl-optimization/2175] fold in fold_const.c associates non-multiply expressions

2008-10-22 Thread drow at gcc dot gnu dot org


--- Comment #3 from drow at gcc dot gnu dot org  2008-10-22 13:31 ---
Subject: Bug 2175

Author: drow
Date: Wed Oct 22 13:30:19 2008
New Revision: 141292

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141292
Log:
./
PR gdb/921
PR gdb/1646
PR gdb/2175
PR gdb/2176

* Makefile.def (flags_to_pass): Add CPPFLAGS_FOR_BUILD and CPPFLAGS.
* Makefile.tpl (BUILD_EXPORTS): Set CPPFLAGS.
(EXTRA_BUILD_FLAGS): Correct typo.  Pass CPPFLAGS.
(HOST_EXPORTS): Pass CPPFLAGS.
(CPPFLAGS_FOR_BUILD, CPPFLAGS, CPPFLAGS_FOR_TARGET): Define.
(LDFLAGS_FOR_TARGET): Initialize from configure script.
(EXTRA_TARGET_FLAGS): Set CPPFLAGS.
* Makefile.in, configure: Regenerated.
* configure.ac: Set CPPFLAGS_FOR_TARGET, LDFLAGS_FOR_TARGET,
and CPPFLAGS_FOR_BUILD.

libiberty/
* Makefile.in (CPPFLAGS): Define.
(FLAGS_TO_PASS, COMPILE.c): Add CPPFLAGS.

Modified:
trunk/ChangeLog
trunk/Makefile.def
trunk/Makefile.in
trunk/Makefile.tpl
trunk/configure
trunk/configure.ac
trunk/libiberty/ChangeLog
trunk/libiberty/Makefile.in


-- 


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



[Bug c++/921] 2.95.2 generates incorrect ref to static initialized char[] in classes. 2.8.1 works fine

2008-10-22 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2008-10-22 13:31 ---
Subject: Bug 921

Author: drow
Date: Wed Oct 22 13:30:19 2008
New Revision: 141292

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141292
Log:
./
PR gdb/921
PR gdb/1646
PR gdb/2175
PR gdb/2176

* Makefile.def (flags_to_pass): Add CPPFLAGS_FOR_BUILD and CPPFLAGS.
* Makefile.tpl (BUILD_EXPORTS): Set CPPFLAGS.
(EXTRA_BUILD_FLAGS): Correct typo.  Pass CPPFLAGS.
(HOST_EXPORTS): Pass CPPFLAGS.
(CPPFLAGS_FOR_BUILD, CPPFLAGS, CPPFLAGS_FOR_TARGET): Define.
(LDFLAGS_FOR_TARGET): Initialize from configure script.
(EXTRA_TARGET_FLAGS): Set CPPFLAGS.
* Makefile.in, configure: Regenerated.
* configure.ac: Set CPPFLAGS_FOR_TARGET, LDFLAGS_FOR_TARGET,
and CPPFLAGS_FOR_BUILD.

libiberty/
* Makefile.in (CPPFLAGS): Define.
(FLAGS_TO_PASS, COMPILE.c): Add CPPFLAGS.

Modified:
trunk/ChangeLog
trunk/Makefile.def
trunk/Makefile.in
trunk/Makefile.tpl
trunk/configure
trunk/configure.ac
trunk/libiberty/ChangeLog
trunk/libiberty/Makefile.in


-- 


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



[Bug other/2176] Printing unsigned long int with int format in dwarf2out.c

2008-10-22 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2008-10-22 13:31 ---
Subject: Bug 2176

Author: drow
Date: Wed Oct 22 13:30:19 2008
New Revision: 141292

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141292
Log:
./
PR gdb/921
PR gdb/1646
PR gdb/2175
PR gdb/2176

* Makefile.def (flags_to_pass): Add CPPFLAGS_FOR_BUILD and CPPFLAGS.
* Makefile.tpl (BUILD_EXPORTS): Set CPPFLAGS.
(EXTRA_BUILD_FLAGS): Correct typo.  Pass CPPFLAGS.
(HOST_EXPORTS): Pass CPPFLAGS.
(CPPFLAGS_FOR_BUILD, CPPFLAGS, CPPFLAGS_FOR_TARGET): Define.
(LDFLAGS_FOR_TARGET): Initialize from configure script.
(EXTRA_TARGET_FLAGS): Set CPPFLAGS.
* Makefile.in, configure: Regenerated.
* configure.ac: Set CPPFLAGS_FOR_TARGET, LDFLAGS_FOR_TARGET,
and CPPFLAGS_FOR_BUILD.

libiberty/
* Makefile.in (CPPFLAGS): Define.
(FLAGS_TO_PASS, COMPILE.c): Add CPPFLAGS.

Modified:
trunk/ChangeLog
trunk/Makefile.def
trunk/Makefile.in
trunk/Makefile.tpl
trunk/configure
trunk/configure.ac
trunk/libiberty/ChangeLog
trunk/libiberty/Makefile.in


-- 


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



[Bug web/1646] The GNATS query filters do not work correctly

2008-10-22 Thread drow at gcc dot gnu dot org


--- Comment #8 from drow at gcc dot gnu dot org  2008-10-22 13:31 ---
Subject: Bug 1646

Author: drow
Date: Wed Oct 22 13:30:19 2008
New Revision: 141292

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141292
Log:
./
PR gdb/921
PR gdb/1646
PR gdb/2175
PR gdb/2176

* Makefile.def (flags_to_pass): Add CPPFLAGS_FOR_BUILD and CPPFLAGS.
* Makefile.tpl (BUILD_EXPORTS): Set CPPFLAGS.
(EXTRA_BUILD_FLAGS): Correct typo.  Pass CPPFLAGS.
(HOST_EXPORTS): Pass CPPFLAGS.
(CPPFLAGS_FOR_BUILD, CPPFLAGS, CPPFLAGS_FOR_TARGET): Define.
(LDFLAGS_FOR_TARGET): Initialize from configure script.
(EXTRA_TARGET_FLAGS): Set CPPFLAGS.
* Makefile.in, configure: Regenerated.
* configure.ac: Set CPPFLAGS_FOR_TARGET, LDFLAGS_FOR_TARGET,
and CPPFLAGS_FOR_BUILD.

libiberty/
* Makefile.in (CPPFLAGS): Define.
(FLAGS_TO_PASS, COMPILE.c): Add CPPFLAGS.

Modified:
trunk/ChangeLog
trunk/Makefile.def
trunk/Makefile.in
trunk/Makefile.tpl
trunk/configure
trunk/configure.ac
trunk/libiberty/ChangeLog
trunk/libiberty/Makefile.in


-- 


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



[Bug middle-end/37316] [4.4 Regression] Small structs are not passed correctly on hppa64-*-*

2008-10-22 Thread drow at gcc dot gnu dot org


--- Comment #8 from drow at gcc dot gnu dot org  2008-10-22 15:48 ---
Subject: Re:  [4.4 Regression] Small structs are not
passed correctly on hppa64-*-*

On Wed, Oct 22, 2008 at 03:37:09PM -, jakub at gcc dot gnu dot org wrote:
 Was the I am reasonably sure it will only affect only E500 comment in
 http://gcc.gnu.org/ml/gcc-patches/2008-06/msg00255.html
 meant for this patch or the other one?
 Clearly it makes a big difference.

It was meant for this patch; for the other, I was absolutely sure.
Your explanation makes sense to me.  I have the same questions you do,
too; I got completely lost in the different modes/types being dealt
with here.


-- 


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



[Bug debug/28064] .debug_str is used only when optimizing

2008-10-15 Thread drow at gcc dot gnu dot org


--- Comment #3 from drow at gcc dot gnu dot org  2008-10-15 18:57 ---
Then let's forget about the -fmerge-constants question and mark this fixed.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug bootstrap/37086] [4.4 Regression] GCC 3.4 miscompiles trunk (for cross compiling)

2008-09-12 Thread drow at gcc dot gnu dot org


--- Comment #15 from drow at gcc dot gnu dot org  2008-09-12 12:43 ---
Reopening...


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


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



[Bug bootstrap/37086] [4.4 Regression] GCC 3.4 miscompiles trunk (for cross compiling)

2008-09-12 Thread drow at gcc dot gnu dot org


--- Comment #16 from drow at gcc dot gnu dot org  2008-09-12 12:43 ---
Fixed.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug c/37428] New: GNU VLA-in-structure extension is undocumented

2008-09-08 Thread drow at gcc dot gnu dot org
This is a GNU extension to C99:

void foo(int n)
{
  struct S { int x[n]; };
}

It is not mentioned in the C Extensions section of the manual.


-- 
   Summary: GNU VLA-in-structure extension is undocumented
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org


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



[Bug middle-end/37316] [4.4 Regression] Small structs are not passed correctly on hppa64-*-*

2008-09-08 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2008-09-09 03:16 ---
That patch isn't supposed to make any difference, because of when the parallel
is removed - it's not supposed to be early enough to affect where things are
passed.  It just happens within the function.

Unfortunately I'm not going to have a chance to look at this for a while :-(


-- 


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



[Bug debug/37237] New: Debug information for virtual destructors omits DW_AT_vtable_elem_location

2008-08-25 Thread drow at gcc dot gnu dot org
Compile a C++ file containing a class with a virtual destructor.  Example from
gdb's class2.cc test:

struct A
{
  virtual ~A ();
  int a1;
};

A::~A()
{
  a1 = 800;
}

From the DWARF:

 2270: Abbrev Number: 10 (DW_TAG_subprogram)
  271 DW_AT_external: 1
  272 DW_AT_name: ~A
  275 DW_AT_decl_file   : 1
  276 DW_AT_decl_line   : 25
  277 DW_AT_virtuality  : 1   (virtual)
  278 DW_AT_containing_type: 221
  27c DW_AT_declaration : 1

There's a DIE for the member function definition which refers to this
(DW_AT_specification), too.  But neither of them has
DW_AT_vtable_elem_location; this is not optional for virtual methods.

I assume this is related to the fact that the destructor is cloned (whole
object and partial object).  That's why it doesn't get a
DW_AT_MIPS_linkage_name.  I believe there are two vtable slots for the two
clones; the most practical thing would be to describe the whole-object version
in the DWARF since that's what a debugger will be looking up.

I can't think of a better way to handle this; maybe someone else can.


-- 
   Summary: Debug information for virtual destructors omits
DW_AT_vtable_elem_location
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org


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



[Bug fortran/29635] debug info of modules

2008-08-18 Thread drow at gcc dot gnu dot org


--- Comment #9 from drow at gcc dot gnu dot org  2008-08-18 12:38 ---
Interesting, I didn't know this was for the benefit of some debugger.  I don't
think GDB has needed it in several years.  If things work with GDB 6.8 and
without these DIEs, I think it's safe to combine the declaration and the
reference to it.

(It's not right to call a DIE with DW_AT_specification a specification; the
target of the attribute is the specification.)


-- 


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



[Bug bootstrap/37086] Cross-compilers built with GCC 3.4 do not work

2008-08-12 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2008-08-12 11:55 ---
In the past, we've worked around bugs like this in widely used compilers - they
make life difficult.  Obviously it depends how nasty a workaround is found!


-- 


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



[Bug bootstrap/37086] New: Cross-compilers built with GCC 3.4 do not work

2008-08-11 Thread drow at gcc dot gnu dot org
Building libgcc, I get:

/scratch/dan/mips-nonpic-upstream/src/gcc-mainline/libgcc/../gcc/unwind-pe.h:
In function 'size_of_encoded_value':
/scratch/dan/mips-nonpic-upstream/src/gcc-mainline/libgcc/../gcc/unwind-pe.h:78:
internal compiler error: tree check: accessed elt 7 of tree_vec with 5 elts in
find_switch_asserts, at tree-vrp.c:4346

/scratch/dan/mips-nonpic-upstream/src/gcc-mainline/libgcc/../gcc/unwind-dw2.c:1257:
internal compiler error: tree check: accessed elt 9 of tree_vec with 7 elts in
find_switch_asserts, at tree-vrp.c:4346

If I recompile tree-vrp.o with -O0, then libgcc compiles OK.

Joseph suggests this came in at the time of the tuples merge.  If possible, it
would be nice if we could avoid the problematic construct...

The code in question is:

  /* If there are multiple case labels with the same destination
 we need to combine them to a single value range for the edge.  */
  if (idx + 1  n
   CASE_LABEL (cl) == CASE_LABEL (TREE_VEC_ELT (vec2, idx + 1)))
{
  /* Skip labels until the last of the group.  */
  do {
++idx;
  } while (idx  n
CASE_LABEL (cl) == CASE_LABEL (TREE_VEC_ELT (vec2,
idx)));
  --idx;

When we reach the outer if, idx == 3 and n == 5.  We go around twice, but idx
goes up to 7.

It looks like a loop optimization issue:

0x84fa0fd find_switch_asserts+1309:   lea0x2(%edi),%esi
0x84fa100 find_switch_asserts+1312:   mov-0x40(%ebp),%edi
0x84fa103 find_switch_asserts+1315:   cmp-0x3c(%ebp),%edi
0x84fa106 find_switch_asserts+1318:   mov%esi,-0x40(%ebp)
0x84fa109 find_switch_asserts+1321:   jb 0x84fa080
find_switch_asserts+1184
0x84fa10f find_switch_asserts+1327:   mov-0x38(%ebp),%ecx
0x84fa112 find_switch_asserts+1330:   dec%esi
0x84fa113 find_switch_asserts+1331:   mov%esi,-0x40(%ebp)

-0x40(%ebp) is idx, and idx+1 is in %edi before the above code.


-- 
   Summary: Cross-compilers built with GCC 3.4 do not work
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu


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



[Bug tree-optimization/36861] [4.3 Regression] boost's compressed avl confuses GCC

2008-07-24 Thread drow at gcc dot gnu dot org


--- Comment #18 from drow at gcc dot gnu dot org  2008-07-24 22:18 ---
Putting the regression marker back.  The code doesn't matter; if it's a
regression, then it's regression.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|boost's compressed avl  |[4.3 Regression] boost's
   |confuses GCC|compressed avl confuses GCC


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



[Bug target/36701] [4.4 Regression] unaligned access in gcc.c-torture/execute/complex-7.c

2008-07-08 Thread drow at gcc dot gnu dot org


--- Comment #10 from drow at gcc dot gnu dot org  2008-07-08 20:26 ---
Subject: Re:  [4.4 Regression] unaligned access in
gcc.c-torture/execute/complex-7.c

It sounds plausible but I suggest you ask on gcc-patches, I can't
review that.


-- 


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



[Bug debug/36748] New: scev const-prop pass adds bad line numbers

2008-07-07 Thread drow at gcc dot gnu dot org
I'm testing inlined function support for GCC.  When I compile the attached
testcase with GCC (Debian's 4.3 package or unmodified trunk) and -g -O2, break
main in the patched GDB puts a breakpoint at the start of main and again
inside the inlined copy of factorial.

This happens because there are several bits of code associated with the line
containing main's opening brace.

The bad line numbers are introduced by pass_scev_cprop (why is this dumped into
sccp; having a dump named sccp shortly after one named store_ccp is
confusing).  Here's the relevant piece of the diff between 096t.lim and
099t.sccp:

@@ -88,7 +100,11 @@

 bb 8:
   # mult_acc.12_13 = PHI mult_acc.12_15(6)
-  # value_16 = PHI value_14(6)
+  [../break.c : 13] D.2700_29 = value_11 + -1;
+  [../break.c : 13] D.2701_7 = (unsigned int) D.2633_10;
+  [../break.c : 13] D.2702_30 = 2 - D.2701_7;
+  [../break.c : 13] D.2703_31 = (int) D.2702_30;
+  value_16 = D.2700_29 + D.2703_31;

 bb 9:
   # mult_acc.12_19 = PHI mult_acc.12_13(8), 1(4)

There are no other lines associated with break.c:13 in the dump at this point.  

The location came from internal_get_tmp_var.

644   if (EXPR_HAS_LOCATION (val))
645 SET_EXPR_LOCUS (mod, EXPR_LOCUS (val));
646   else
647 SET_EXPR_LOCATION (mod, input_location);

input_location has nothing to do with anything at this point.


-- 
   Summary: scev const-prop pass adds bad line numbers
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org
  GCC host triplet: x86_64-pc-linux-gnu


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



[Bug debug/36748] scev const-prop pass adds bad line numbers

2008-07-07 Thread drow at gcc dot gnu dot org


--- Comment #1 from drow at gcc dot gnu dot org  2008-07-07 13:56 ---
Created an attachment (id=15869)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15869action=view)
Test case


-- 


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



[Bug target/36701] [4.4 Regression] unaligned access in gcc.c-torture/execute/complex-7.c

2008-07-07 Thread drow at gcc dot gnu dot org


--- Comment #7 from drow at gcc dot gnu dot org  2008-07-07 22:31 ---
Subject: Re:  [4.4 Regression] unaligned access in
gcc.c-torture/execute/complex-7.c

On Mon, Jul 07, 2008 at 10:25:08PM -, hjl dot tools at gmail dot com wrote:
 is incorrect for ia64 HFA. You can't do
 
 rtx parmreg = gen_reg_rtx (GET_MODE (entry_parm));
 
 when entry_parm is HFA passed in GR:

What does HFA mean?  Why can't you copy it into a reg:SC?  This shouldn't
change the incoming location of the argument; it's generating code at
the start of the function to retrieve the argument.


-- 


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



[Bug target/36701] [4.4 Regression] unaligned access in gcc.c-torture/execute/complex-7.c

2008-07-03 Thread drow at gcc dot gnu dot org


--- Comment #3 from drow at gcc dot gnu dot org  2008-07-04 03:14 ---
Does the new function do anything on this test case?  What are the various
incoming modes (nominal, promoted) and the actual RTX?


-- 


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



[Bug bootstrap/34257] --with-sysroot does not change default linux glibc dynamic-linker path

2008-05-14 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2008-05-14 13:47 ---
I agree that a new option would be useful.  Something like --target-sysroot to
go parallel to --sysroot, with an optional value or a special value same or
some other way to avoid duplicating the path on the command line.

In general you need both -dynamic-linker and -rpath.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||drow at gcc dot gnu dot org


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



[Bug target/36031] New: ARM -fshort-enums attribute not emitted for Fortran

2008-04-23 Thread drow at gcc dot gnu dot org
The -fshort-enums option emits a note in the object file that the linker can
use to detect mismatches.  It does not work for Fortran; the int-sized enums
attribute is emitted with or without -fshort-enums.


-- 
   Summary: ARM -fshort-enums attribute not emitted for Fortran
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org
GCC target triplet: arm-none-linux-gnueabi


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



[Bug debug/35615] Debug information for .debug_loc section incorrect

2008-03-21 Thread drow at gcc dot gnu dot org


--- Comment #13 from drow at gcc dot gnu dot org  2008-03-21 19:30 ---
Closing, then.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME


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



[Bug target/35296] New: init_expr_once suboptimal for Thumb

2008-02-22 Thread drow at gcc dot gnu dot org
init_expr_once sets direct_load and direct_store arrays, which are indexed by
mode.  These are supposed to indicate can we load a value of this mode from
memory and similar for store.  It does this by passing a bunch of (set (reg)
(mem)) instructions to recog.

At the top of the function:

   /* Try indexing by frame ptr and try by stack ptr.
 It is known that on the Convex the stack ptr isn't a valid index.
 With luck, one or the other is valid on any machine.  */
  mem = gen_rtx_MEM (VOIDmode, stack_pointer_rtx);
  mem1 = gen_rtx_MEM (VOIDmode, frame_pointer_rtx);

That's actually base, not index, in current GCC parlance.  And the assumption
isn't true for Thumb.  You can load SImode using [sp], but not QImode.  And
frame_pointer_rtx is a pseudo that isn't valid to index off of anyway.  The
hard frame pointer is r7 for Thumb, and that would be a valid index.

Possibilities: also check hard_frame_pointer_rtx, also check a target-specified
register, find a valid register for each mode using ok_for_base_1.  The last
seems best except it would be the earliest call to REGNO_OK_FOR_BASE_P et
cetera in the compiler.  The ARM version will crash if reg_renumber isn't
allocated.

This isn't a big problem because we'll go on to handle QImode loads as bitfield
accesses and bitfield optimizations will more or less sort things out.  Fixing
it might enable some other RTL optimizations though.


-- 
   Summary: init_expr_once suboptimal for Thumb
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org
GCC target triplet: arm*-*


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



[Bug driver/35300] References to original ${prefix} paths in relocated toolchain and /lib and /usr/lib search paths appear in cross toolchain.

2008-02-22 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2008-02-23 04:38 ---
It's found through multilib os-directory suffixes.

How did you configure GCC?

The standard_exec_prefix_1, et cetera patch is not necessary on HEAD and will
conflict.  In fact that's another of Carlos's patches.  I don't know about the
update_path patch, but CodeSourcery's been building relocatable sysrooted
compilers since before 4.1.1 and never encountered this problem.  I think we
avoid the code in prefix.c entirely.


-- 


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



[Bug target/35071] bad instruction `do_itt eq'

2008-02-14 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2008-02-14 16:11 ---
Looks like it should be do_it eq, t.  Each additional t or e predicates
one more instruction.  The mvfeqd has to be predicated and so does the
RETc(eq).


-- 


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



[Bug target/34526] no-altivec ABI should be fixed or no longer be the default

2008-02-14 Thread drow at gcc dot gnu dot org


--- Comment #11 from drow at gcc dot gnu dot org  2008-02-14 16:31 ---
Might want to try at least one SPE target, for completeness.  I think
powerpc-*-eabispe is sim testable.


-- 


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



[Bug target/34526] no-altivec ABI should be fixed or no longer be the default

2008-02-04 Thread drow at gcc dot gnu dot org


--- Comment #7 from drow at gcc dot gnu dot org  2008-02-05 03:19 ---
Subject: Re:  no-altivec ABI should be fixed or no longer
be the default

On Tue, Feb 05, 2008 at 02:23:20AM -, janis at gcc dot gnu dot org wrote:
 There's another mess hiding under the ABI change, which is that synthetic
 vectors of the same size as AltiVec vectors are passed differently for
 -mabi=altivec than for -mabi=no-altivec.

FYI, this is target/33899.


-- 


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



[Bug bootstrap/32287] gas version style changed causes warnings with configure

2008-01-22 Thread drow at gcc dot gnu dot org


--- Comment #14 from drow at gcc dot gnu dot org  2008-01-22 13:30 ---
Subject: Re:  gas version style changed causes
warnings with configure

Thanks, H.J.!


-- 


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



[Bug bootstrap/32287] gas version style changed causes warnings with configure

2008-01-21 Thread drow at gcc dot gnu dot org


--- Comment #9 from drow at gcc dot gnu dot org  2008-01-21 20:41 ---
Here's why I didn't remember the patch - I just checked it in, I didn't write
it.

2007-08-23  Brian Sidebotham  [EMAIL PROTECTED]

* configure.ac (leb128): Modify sed statement to work with any
binutils version string.
* configure: Regenerate

That version definitely handles:
as_ver='GNU assembler (GNU Binutils for Debian) 2.18.20071027'

It does not handle:
as_ver='GNU assembler (Linux/GNU Binutils) 2.18.50.0.3.20071102'

This version format is new and is not produced by the FSF binutils.  I assume
it's a result of HJ Lu's Linux binutils after a merge from FSF trunk.

The ld_vers check up higher in the file was changed to handle the new version
format on 2007-09-23.

HJ, Richi, I can find a lot of confused versions of HJ's patch in that thread,
which starts here:
  http://gcc.gnu.org/ml/gcc-patches/2007-09/msg01170.html

Nowhere can I find the actual approval.  The only version which was approved
was safe, but the patch as applied is unsafe.  If you put a .* there, then it
will match any xx.yy string anywhere in the version string, including after
the binutils version!  This does not mess up on --with-pkgversion on new
versions of binutils but only because sed will use the shorter match, and the
binutils version comes second.

+   -e 's,^.*[   ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p' \
-e 's,^.*[   ]\([0-9][0-9]*\.[0-9][0-9]*\)[  ].*$,\1,p' \

Note that second line will never match now.

The ld and as tests should be made uniform again but I think that we should go
back to this one:
  http://gcc.gnu.org/ml/gcc-patches/2007-09/msg01170.html


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hjl dot tools at gmail dot
   ||com, rguenther at suse dot
   ||de, bonzini at gnu dot org


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



[Bug debug/23336] [4.0/4.1 Regression] enum constants not visible to gdb because of -feliminate-unused-debug-types

2008-01-21 Thread drow at gcc dot gnu dot org


--- Comment #12 from drow at gcc dot gnu dot org  2008-01-21 20:59 ---
I don't care about 4.0/4.1 at this date.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|drow at gcc dot gnu dot org |unassigned at gcc dot gnu
   ||dot org
 Status|ASSIGNED|NEW


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



[Bug debug/27473] [4.0/4.1 Regression] g++.dg/other/unused1.C and gcc.dg/20060410.c fail on powerpc-darwin

2008-01-21 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2008-01-21 21:00 ---
I don't care about 4.0/4.1 at this date.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|drow at gcc dot gnu dot org |unassigned at gcc dot gnu
   ||dot org
 Status|ASSIGNED|NEW


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



[Bug c++/28460] [4.0/4.1 Regression] g++ emits bogus namespace DIE

2008-01-21 Thread drow at gcc dot gnu dot org


--- Comment #16 from drow at gcc dot gnu dot org  2008-01-21 21:00 ---
I don't care about 4.0/4.1 at this date.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|drow at gcc dot gnu dot org |unassigned at gcc dot gnu
   ||dot org
 Status|ASSIGNED|NEW


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



[Bug bootstrap/32287] gas version style changed causes warnings with configure

2008-01-21 Thread drow at gcc dot gnu dot org


--- Comment #11 from drow at gcc dot gnu dot org  2008-01-21 21:46 ---
Subject: Re:  gas version style changed causes
warnings with configure

On Mon, Jan 21, 2008 at 09:43:09PM -, hjl dot tools at gmail dot com wrote:
 The second line isn't needed. I checked the following versions:
 
 ./check GNU ld version 2.17.50.0.6-5.fc6 20061020
 ./check GNU ld version 2.17.50.0.12-4 20070128
 ./check GNU ld version 2.15.92.0.2 20040927
 ./check GNU ld (GNU Binutils) 2.18.50.20070913
 ./check GNU ld (Linux/GNU Binutils) 2.18.50.0.1.20070906
 ./check GNU ld (GNU Binutils) 2.17.50.20070726-12 (SUSE Linux)
 ./check GNU assembler (GNU Binutils for Debian) 2.17.50.20070426
 
 and they work fine. Do you have more to add?

It will fail on any line that contains xx.yy after the binutils
version.  Didn't that used to happen?

If not we can remove basically the entire test.  Once the first
pattern matches the rest is mostly irrelevant.


-- 


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



[Bug bootstrap/34205] iwmmxt type/size error

2007-11-27 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2007-11-27 19:27 ---
Probably.  Why are you using the iwmmxt ABI?  Don't.  Just trust the AAPCS, it
knows what's good for you.


-- 


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



[Bug bootstrap/34205] iwmmxt type/size error

2007-11-26 Thread drow at gcc dot gnu dot org


--- Comment #2 from drow at gcc dot gnu dot org  2007-11-26 13:50 ---
I don't know how you configured to get this.  It looks like you've got
-fshort-enums by default; GCC can not be built with that option (although it
should be fixable).


-- 


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



[Bug debug/33440] gcc-compiled program possibly reporting wrong variable address to gdb

2007-11-06 Thread drow at gcc dot gnu dot org


--- Comment #2 from drow at gcc dot gnu dot org  2007-11-06 22:02 ---
Works for me on Debian/unstable using GCC 4.2, GDB 6.7, so I expect this was a
bug in Ubuntu's compiler version.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME


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



[Bug debug/33921] FAIL: gcc.dg/debug/debug-6.c -gdwarf-2 -O scan-assembler xyzzy

2007-11-03 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2007-11-03 17:50 ---
Subject: Bug 33921

Author: drow
Date: Sat Nov  3 17:50:20 2007
New Revision: 129872

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129872
Log:
PR debug/33921
* reorg.c (emit_delay_sequence): Do not clear the locator on
the jump instruction.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/reorg.c


-- 


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



[Bug debug/33921] FAIL: gcc.dg/debug/debug-6.c -gdwarf-2 -O scan-assembler xyzzy

2007-11-03 Thread drow at gcc dot gnu dot org


--- Comment #6 from drow at gcc dot gnu dot org  2007-11-03 17:54 ---
Checked in on trunk.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug debug/33921] FAIL: gcc.dg/debug/debug-6.c -gdwarf-2 -O scan-assembler xyzzy

2007-10-27 Thread drow at gcc dot gnu dot org


--- Comment #3 from drow at gcc dot gnu dot org  2007-10-27 16:39 ---
All that patch does is change the line number associated with an instruction,
i.e., .debug_line.  xyzzy is supposed to appear in .debug_info, so I don't see
how it could make a difference.

That doesn't mean it doesn't, though.  I'll build a cross-compiler and see.


-- 


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



[Bug debug/33921] FAIL: gcc.dg/debug/debug-6.c -gdwarf-2 -O scan-assembler xyzzy

2007-10-27 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2007-10-27 17:42 ---
Confirmed.  Here the xyzzy and the call are in the same line.  That means that
previously the sequence got the right locator by accident, and the jump kept
the right locator.  Afterwards the sequence has the right locator and the jump
has none.

When reorder_blocks reconstructs block nesting from notes, it does not attach
the subblock.  That's because a NOTE_INSN_BLOCK_BEG is missing.

reemit_insn_block_notes:

  /* For sequences compute scope resulting from merging all scopes
 of instructions nested inside.  */

It ignores the locator on the sequence itself and selects one based on the
block inside.

I'm not sure that code makes any sense.  Anyway, the easiest fix is to leave
the locator on the jump alone.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |drow at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-10-27 17:42:51
   date||


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



[Bug target/33899] New: -maltivec option changes ABI

2007-10-25 Thread drow at gcc dot gnu dot org
rs6000_return_in_memory has:

  /* Allow -maltivec -mabi=no-altivec without warning.  Altivec vector
 modes only exist for GCC vector types if -maltivec.  */
  if (TARGET_32BIT  !TARGET_ALTIVEC_ABI
   ALTIVEC_VECTOR_MODE (TYPE_MODE (type)))
return false;

The code below warns for big vectors and returns true.  That means a function
returning __vector int does so in an AltiVec register with -mabi=altivec, in
r3 r4 r5 r6 with -maltivec only, and in memory without -maltivec.

This means GDB can not tell where the return value goes and whether a reference
argument is necessary, even when it knows whether -mabi=altivec was used.

This comes from here:
  http://gcc.gnu.org/ml/gcc-patches/2004-11/msg02035.html

I read through that entire thread and I still don't understand the behavior.
If __vector int should be returned in four GPRs for -maltivec -mabi=no-altivec,
then shouldn't we return it in four GPRs for non-AltiVec configurations too? 
In my simpler world, every option either affects the ABI or does not,
-mabi=altivec does, and -maltivec does not.


-- 
   Summary: -maltivec option changes ABI
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org
GCC target triplet: powerpc-linux


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



[Bug debug/33861] New: Debugging info for C++ template parameters is incorrect

2007-10-22 Thread drow at gcc dot gnu dot org
Compile this code, reduced from gdb.cp/templates.cc:

===
char name[3];
templatechar *V struct Qux
{
  int foo();
};

templatechar *V int QuxV::foo()
{
  return V[0];
}

Quxname qux;
===

Look at the resulting debug information, by building with -c -g and using
readelf -wi, or by compiling with -S -dA.  Take a look at the type of the
instantiated foo.  G++ calls it Qux(char*)( name)::foo().  But that's not
right.

For the first thing, I believe it's not valid C++.  G++ certainly rejects the
obvious ways of writing this.  But worse is that it is representable in the
mangling.  The actual method:

  _ZN3QuxIXadL_Z4nameEEE3fooEv - Qux(name)::foo()

But this is validly mangled:

  _ZN3QuxIXcvPcadL_Z4nameEEE3fooEv - Qux(char*)((name))::foo()

There are tons of other places where GCC emits debug info different from the
demangler, usually in spacing or in the spelling of basic types (long unsigned
int vs unsigned long); I have code in GDB to correct for all such cosmetic
differences but I am reluctant to make it remove casts that could be important.


-- 
   Summary: Debugging info for C++ template parameters is incorrect
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org


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



[Bug debug/33861] Debugging info for C++ template parameters is incorrect

2007-10-22 Thread drow at gcc dot gnu dot org


--- Comment #1 from drow at gcc dot gnu dot org  2007-10-22 14:13 ---
Fixing bug 30161 might fix, or at least simplify, this too.  But I suspect this
name still shows up in error messages where it is suboptimal.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-10-22 14:13:05
   date||


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



[Bug debug/33537] New: [4.0/4.1/4.2/4.3 regression] C++ arguments passed by invisible reference have wrong type

2007-09-23 Thread drow at gcc dot gnu dot org
Compile the code below using g++ -g, load the object into gdb, and 'ptype foo'.
 You will see that the type of foo is 'int (Obj )'.  If this function is
called from GDB, and the called function modifies its argument, it will end up
modifying the original copy.  It's supposed to get a temporary copy.

This changed sometime between g++ 3.3 and g++ 4.0.

class Obj {
public:
  Obj ();
  Obj (const Obj );
  ~Obj ();
  int var[2];
};

int foo (Obj arg)
{
  return arg.var[0] + arg.var[1];
}

int main() { return 0; }

Obj::Obj ()
{
  var[0] = 1;
  var[1] = 2;
}

Obj::Obj (const Obj obj)
{
  var[0] = obj.var[0];
  var[1] = obj.var[1];
}

Obj::~Obj ()
{

}


-- 
   Summary: [4.0/4.1/4.2/4.3 regression] C++ arguments passed by
invisible reference have wrong type
   Product: gcc
   Version: 4.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drow at gcc dot gnu dot org


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



[Bug debug/33537] [4.0/4.1/4.2/4.3 regression] C++ arguments passed by invisible reference have wrong type

2007-09-23 Thread drow at gcc dot gnu dot org


--- Comment #2 from drow at gcc dot gnu dot org  2007-09-23 17:49 ---
I got the correct result on amd64 with g++-3.3 (GCC) 3.3.6 (Debian 1:3.3.6-15).


-- 


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



[Bug debug/33537] [4.0/4.1/4.2/4.3 regression] C++ arguments passed by invisible reference have wrong type

2007-09-23 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2007-09-23 18:40 ---
Subject: Re:  [4.0/4.1/4.2/4.3 regression] C++ arguments
passed by invisible reference have wrong type

On Sun, Sep 23, 2007 at 06:31:42PM -, pluto at agmk dot net wrote:
  If this function is called from GDB, and the called function modifies
  its argument, it will end up modifying the original copy.
  It's supposed to get a temporary copy.
 
 compiler does the temporary copy. please look at this example:

That's why the bug report said from GDB.  It's a debug info bug, not
a C++ wrong-code bug.


-- 


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



[Bug middle-end/31490] Compile error section type conflict

2007-08-31 Thread drow at gcc dot gnu dot org


--- Comment #15 from drow at gcc dot gnu dot org  2007-08-31 17:42 ---
Has Segher's patch been sent to gcc-patches?  I've just encountered the ppc64
bootstrap failure too.


-- 


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



[Bug testsuite/31884] priority_queue_dijkstra.cc operates on deallocated memory

2007-08-17 Thread drow at gcc dot gnu dot org


--- Comment #2 from drow at gcc dot gnu dot org  2007-08-17 17:24 ---
Subject: Bug 31884

Author: drow
Date: Fri Aug 17 17:24:22 2007
New Revision: 127590

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=127590
Log:
PR testsuite/31884
* testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc (main): Do
not access deleted nodes.

* testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc,
testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc,
testsuite/27_io/basic_filebuf/open/char/4.cc,
testsuite/27_io/objects/char/9.cc: Use dg-require-fileio.
* testsuite/ext/forced_exception_error/cons_virtual_derivation.cc,
testsuite/ext/pb_ds/regression/hash_data_map_rand.cc,
testsuite/ext/pb_ds/regression/trie_data_map_rand.cc,
testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc,
testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc,
testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc,
testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc,
testsuite/ext/pb_ds/regression/priority_queue_rand.cc,
testsuite/ext/pb_ds/regression/tree_data_map_rand.cc,
testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc,
testsuite/ext/throw_allocator/deallocate_global.cc,
testsuite/ext/throw_allocator/check_delete.cc,
testsuite/ext/throw_allocator/check_allocate_max_size.cc,
testsuite/ext/throw_allocator/check_deallocate_null.cc,
testsuite/ext/throw_allocator/check_new.cc,
testsuite/ext/throw_allocator/deallocate_local.cc,
   
testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc,
   
testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc,
   
testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc,
   
testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc,
testsuite/23_containers/list/modifiers/insert/25288.cc: Use
dg-require-time.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.cc
   
trunk/libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
   
trunk/libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc
trunk/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/4.cc
trunk/libstdc++-v3/testsuite/27_io/objects/char/9.cc
   
trunk/libstdc++-v3/testsuite/ext/forced_exception_error/cons_virtual_derivation.cc
trunk/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc
trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc
   
trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc
   
trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc
trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc
trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc
trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc
trunk/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc
trunk/libstdc++-v3/testsuite/ext/throw_allocator/check_allocate_max_size.cc
trunk/libstdc++-v3/testsuite/ext/throw_allocator/check_deallocate_null.cc
trunk/libstdc++-v3/testsuite/ext/throw_allocator/check_delete.cc
trunk/libstdc++-v3/testsuite/ext/throw_allocator/check_new.cc
trunk/libstdc++-v3/testsuite/ext/throw_allocator/deallocate_global.cc
trunk/libstdc++-v3/testsuite/ext/throw_allocator/deallocate_local.cc
   
trunk/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc
   
trunk/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc
   
trunk/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
   
trunk/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc


-- 


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



[Bug debug/32990] [Regression] gdb has symbol table issues

2007-08-14 Thread drow at gcc dot gnu dot org


--- Comment #8 from drow at gcc dot gnu dot org  2007-08-14 14:08 ---
I don't think there's anything useful we can do with it without a testcase,
unfortunately.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME


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



[Bug target/32130] [4.3 Regression] linking problems: multiple definition of `__DTOR_END__'

2007-08-14 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2007-08-14 16:02 ---
I encountered this as a build failure for powerpc-eabispe in libstdc++-v3.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||mmitchel at gcc dot gnu dot
   ||org, drow at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-08-14 16:02:11
   date||


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



[Bug debug/32990] [Regression] gdb has symbol table issues

2007-08-13 Thread drow at gcc dot gnu dot org


--- Comment #6 from drow at gcc dot gnu dot org  2007-08-13 20:29 ---
Sorry, my mistake.  I meant readelf -wi (lowercase I).


-- 


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



[Bug testsuite/19232] Failure in gcc.dg/assign-warn-3.c on i686-pc-linux-gnu with -fpic/-fPIC

2007-08-02 Thread drow at gcc dot gnu dot org


--- Comment #5 from drow at gcc dot gnu dot org  2007-08-02 21:59 ---
Nathan Froyd checked in a patch for this.


-- 

drow at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||froydnj at gcc dot gnu dot
   ||org
 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/32919] [4.3 Regression] SSA corruption because of abnormal edges and PRE

2007-08-01 Thread drow at gcc dot gnu dot org


--- Comment #4 from drow at gcc dot gnu dot org  2007-08-01 16:53 ---
Subject: Bug 32919

Author: drow
Date: Wed Aug  1 16:53:01 2007
New Revision: 127132

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=127132
Log:
PR tree-optimization/32919
* tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
* tree-ssa-coalesce.c (ssa_conflicts_dump): New.
(coalesce_ssa_name): Call it.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr32919.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-coalesce.c
trunk/gcc/tree-ssa-sccvn.c


-- 


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



  1   2   3   >