[Bug c++/44186] Wrong code generated with -O2 and above

2010-05-18 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2010-05-18 06:31 ---
*** Bug 44187 has been marked as a duplicate of this bug. ***


-- 


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



[Bug c++/44187] Wrong code generated with -O2 and above

2010-05-18 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2010-05-18 06:31 ---


*** This bug has been marked as a duplicate of 44186 ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c/31367] Should not warn about use of deprecated type in deprecated struct

2010-05-18 Thread ethouris at gmail dot com


--- Comment #4 from ethouris at gmail dot com  2010-05-18 07:14 ---
No matter which entity is actually affected in the example above, 'foo' is a
type of field used inside the entity. In all these cases, deprecation warning
should not be reported for the field of type 'foo'. It should be reported only
when no part of the structure definition is deprecated.

The difference between deprecating only a typedef for a structure or the
structure itself, but not its typedef, should not be seen when it concerns one
integrated declaration (that is, when you deprecate any of these two, both
the typedef and the struct are deprecated). To only deprecate the typedef or
the struct, they should be declared separately - for example, bop4/bar4 should
be declared this way:

struct bar4
{
  foo baz;
};

typedef struct bar4 bop4 __attribute__((deprecated));


So, in the examples for bop1-bop4, all of barN/bopN symbols should be
deprecation-attributed (and, simultaneously, in all these declarations the
deprecation warning should not be reported for 'baz' field declaration). For
this above declaration, the compiler should issue a warning about 'baz' field,
as the structure isn't deprecated and is using a deprecated type 'foo'; so
should be reported a warning about using struct bar4 (this structure is this
way implicitly deprecated) and bop4 (which is explicitly deprecated).


-- 


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



[Bug middle-end/44185] [4.6 regression] New prefetch test failures

2010-05-18 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2010-05-18 07:29 ---
In general, with inlining, not a huge deal, although it can still
occur when functons are short-circuited. For certain applicatons
that are built with PIC, the IP-thunk, at the very least, should
be padded since it's a guaranteed stall on every call. Help Dhrysyone


-- 


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



[Bug middle-end/44101] [4.6 regression] ICE compiling 25_algorithms/fill/4.cc on Tru64 UNIX V5.1B

2010-05-18 Thread ebotcazou at gcc dot gnu dot org


--- Comment #2 from ebotcazou at gcc dot gnu dot org  2010-05-18 07:41 
---
I need the preprocessed file.  Thanks in advance.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|WAITING


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



[Bug lto/44184] asm goto does not work with LTO

2010-05-18 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |steven at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-05-18 08:10:16
   date||


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



[Bug rtl-optimization/44169] Wrong code while generating TLS offsets

2010-05-18 Thread segher at gcc dot gnu dot org


--- Comment #4 from segher at gcc dot gnu dot org  2010-05-18 08:26 ---
Confirmed with current 4.4 branch and mainline.

-mabi=nospe -mno=spe doesn't make the problem go away; only
changing -mcpu does.


-- 

segher at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||segher at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to fail||4.4.4 4.6.0
   Last reconfirmed|-00-00 00:00:00 |2010-05-18 08:26:21
   date||


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



[Bug target/44132] [4.6 Regression] emutls is broken under a range of circumstances.

2010-05-18 Thread iains at gcc dot gnu dot org


--- Comment #17 from iains at gcc dot gnu dot org  2010-05-18 09:09 ---
Created an attachment (id=20693)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20693action=view)
latest version

a few more tweaks.
with this emutls is working for lto/whopr
OMP is still broken and so will be tree-prof if it uses TLS.


-- 


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



[Bug c++/44186] Wrong code generated with -O2 and above

2010-05-18 Thread paolo dot carlini at oracle dot com


--- Comment #3 from paolo dot carlini at oracle dot com  2010-05-18 09:25 
---
Note however, that both the warning and the miscompilation do not happen with
current 4_5-branch and mainline...


-- 


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



[Bug c++/44188] New: Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-05-18 Thread rguenth at gcc dot gnu dot org
typedef struct
{
int i;
} AAA;

typedef struct BBB
{
int i;
} BBB;

int main(void) {
BBB bb;
AAA aa;
return 0;
}

produces

 3a2: Abbrev Number: 9 (DW_TAG_variable)
a3   DW_AT_name: bb   
a6   DW_AT_decl_file   : 1
a7   DW_AT_decl_line   : 13   
a8   DW_AT_type: 0x66   
ac   DW_AT_location: 2 byte block: 91 60  (DW_OP_fbreg: -32)
 3af: Abbrev Number: 9 (DW_TAG_variable)
b0   DW_AT_name: aa   
b3   DW_AT_decl_file   : 1
b4   DW_AT_decl_line   : 14   
b5   DW_AT_type: 0x2d   
b9   DW_AT_location: 2 byte block: 91 50

where

 166: Abbrev Number: 6 (DW_TAG_typedef)
67   DW_AT_name: BBB  
6b   DW_AT_decl_file   : 1
6c   DW_AT_decl_line   : 10   
6d   DW_AT_type: 0x4d   

(good)

 12d: Abbrev Number: 2 (DW_TAG_structure_type)
2e   DW_AT_byte_size   : 4
2f   DW_AT_decl_file   : 1
30   DW_AT_decl_line   : 3
31   DW_AT_name: AAA  
35   DW_AT_sibling : 0x46   

(bad)

This seems to be because in gen_type_die_with_usage we arrive with a
type that has a non-typedef type-decl as its name.


-- 
   Summary: Fails to produce DW_AT_typedef for typedef of anonymous
struct
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: wrong-debug
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org


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



[Bug debug/41371] [4.5/4.6 Regression] var-tracking is slow and memory hungry

2010-05-18 Thread jakub at gcc dot gnu dot org


--- Comment #27 from jakub at gcc dot gnu dot org  2010-05-18 09:36 ---
Subject: Bug 41371

Author: jakub
Date: Tue May 18 09:35:52 2010
New Revision: 159528

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159528
Log:
PR debug/41371
* var-tracking.c (find_loc_in_1pdv): Add a few checks from
rtx_equal_p inline.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/var-tracking.c


-- 


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



[Bug c++/44186] Wrong code generated with -O2 and above

2010-05-18 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2010-05-18 09:53 ---
(In reply to comment #3)
 Note however, that both the warning and the miscompilation do not happen with
 current 4_5-branch and mainline...

Which is because we see the must-alias and punt.  After all this just
invokes undefined behavior which includes works and does not work.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug middle-end/44185] [4.6 regression] New prefetch test failures

2010-05-18 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


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



[Bug tree-optimization/44182] [4.5/4.6 Regression] -fcompare-debug failure (length) with -O1

2010-05-18 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2010-05-18 10:04 ---
Confirmed.  Assembly with 4.4 is equal -g vs. -g0 and different starting with
4.5.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to fail||4.5.0
  Known to work||4.4.3
   Last reconfirmed|-00-00 00:00:00 |2010-05-18 10:04:30
   date||
Summary|-fcompare-debug failure |[4.5/4.6 Regression] -
   |(length) with -O1   |fcompare-debug failure
   ||(length) with -O1
   Target Milestone|--- |4.5.1


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



[Bug lto/44184] asm goto does not work with LTO

2010-05-18 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

  GCC build triplet|x86_64-pc-linux-gnu |
   GCC host triplet|x86_64-pc-linux-gnu |
 GCC target triplet|x86_64-pc-linux-gnu |
   Target Milestone|--- |4.5.1


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



[Bug rtl-optimization/44174] [4.4/4.5/4.6 Regression] can't find a register in class 'CLOBBERED_REGS' while reloading 'asm'

2010-05-18 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.4.5


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



[Bug c++/44186] Wrong code generated with -O2 and above

2010-05-18 Thread paolo dot carlini at oracle dot com


--- Comment #5 from paolo dot carlini at oracle dot com  2010-05-18 10:08 
---
Ok ;)


-- 


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



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-18 Thread siarhei dot siamashka at gmail dot com


--- Comment #28 from siarhei dot siamashka at gmail dot com  2010-05-18 
10:09 ---
Thanks, this patch fixes bootstrap for powerpc/powerpc64. But still fails for
arm on all the same gcc_assert() in another place. Should a new bug be filed
about this?


-- 


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



[Bug target/42159] [4.4/4.5/4.6] app SIGABRTs after a trivial nested throw/stack unwinding

2010-05-18 Thread fxcoudert at gcc dot gnu dot org


--- Comment #16 from fxcoudert at gcc dot gnu dot org  2010-05-18 10:28 
---
Confirmed on gcc version 4.5.1 20100506 (prerelease).


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to fail|4.4.1 4.4.2 |4.4.1 4.4.2 4.5.1
  Known to work|4.5.0   |
   Last reconfirmed|-00-00 00:00:00 |2010-05-18 10:28:59
   date||
Summary|[4.4 only] app compiled with|[4.4/4.5/4.6] app SIGABRTs
   |4.4.2 SIGABRTs after a  |after a trivial nested
   |trivial nested throw/stack  |throw/stack unwinding
   |unwinding   |


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



[Bug debug/43821] -feliminate-dwarf2-dups produces no debug symbols in executable warning from dsymutil

2010-05-18 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2010-05-18 10:35 
---
Doesn't happen for me with the 4.5 branch. (I don't have a current trunk
compiler to compare with.)


-- 


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



[Bug fortran/43895] [OOP] internal compiler error: verify_ssa failed

2010-05-18 Thread sfilippone at uniroma2 dot it


--- Comment #9 from sfilippone at uniroma2 dot it  2010-05-18 10:41 ---
(In reply to comment #8)
 (In reply to comment #7)

 
 Btw, after the recent patch for PR43969, this might well be fixed already ...
 
Unfortunately, no, I still get the ICE.


-- 


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



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-05-18 Thread jakub at gcc dot gnu dot org


--- Comment #29 from jakub at gcc dot gnu dot org  2010-05-18 10:58 ---
Please file a new PR for that, with preprocessed source and all other relevant
info for reproduction.


-- 


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



[Bug tree-optimization/44182] [4.5/4.6 Regression] -fcompare-debug failure (length) with -O1

2010-05-18 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2010-05-18 11:26 ---
The differences start during inlining.


-- 


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



[Bug target/44189] New: PIC compilation on ARM screws up DWARF lineinfo in function prologue

2010-05-18 Thread gergely+gccbug at risko dot hu
SVN revision: 159525

Configure line: ../gcc-svn/configure --prefix=/tmp/gcc-cross/gcc-svn-bin/
--target=arm-linux-gnueabi
--with-headers=/tmp/gcc-cross/gcc-svn-bin/arm-linux-gnueabi/include
--with-libs=/tmp/gcc-cross/gcc-svn-bin/arm-linux-gnueabi/lib/
--enable-threads=posix --enable-shared --enable-languages=c

Command line: arm-linux-gnueabi-gcc -fpic -Wall -g -O0 -S -o - -c test.c

No errors/warnings from the compiler.

Input program, test.c:
int ext_var;
void ext_fn(int x);

void bad(int x) {
ext_fn(ext_var);
}

The resulting assembly of the bad function:
bad:
.LFB0:
.file 1 test.c
.loc 1 4 0
.cfi_startproc
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 1, uses_anonymous_args = 0
stmfd   sp!, {fp, lr}
.LCFI0:
.cfi_def_cfa_offset 8
add fp, sp, #4
.cfi_offset 14, -4
.cfi_offset 11, -8
.LCFI1:
.cfi_def_cfa 11, 4
sub sp, sp, #8
.loc 1 5 0  -- should not be here
ldr r3, .L2
.LPIC0:
add r3, pc, r3
.loc 1 4 0  -- should not be here
str r0, [fp, #-8]
.loc 1 5 0
ldr r2, .L2+4
ldr r3, [r3, r2]
ldr r3, [r3, #0]
mov r0, r3
bl  ext_fn(PLT)
.loc 1 6 0
sub sp, fp, #4
ldmfd   sp!, {fp, pc}

I have marked the .loc directives that cause the problems for me, because of
those GDB stops too early (when the function parameters are not stored yet) and
because of this GDB command `bt' shows bad parameters for the top frame.  The
`next' command is confused too, of course.  Furthermore, objdump -S is also
confused, shows the function header twice:
 bad:
int ext_var;
void ext_fn(int x);

void bad(int x) {
   0:   e92d4800push{fp, lr}
   4:   e28db004add fp, sp, #4
   8:   e24dd008sub sp, sp, #8
ext_fn(ext_var);
   c:   e59f3020ldr r3, [pc, #32]   ; 34 bad+0x34
  10:   e08f3003add r3, pc, r3
int ext_var;
void ext_fn(int x);

void bad(int x) {
  14:   e50b0008str r0, [fp, #-8]
ext_fn(ext_var);
  18:   e59f2018ldr r2, [pc, #24]   ; 38 bad+0x38
  1c:   e7933002ldr r3, [r3, r2]
  20:   e5933000ldr r3, [r3]
  24:   e1a3mov r0, r3
  28:   ebfebl  0 ext_fn
}
  2c:   e24bd004sub sp, fp, #4
  30:   e8bd8800pop {fp, pc}
  34:   001c.word   0x001c
  38:   .word   0x

To my understanding, the issue is caused by the on-demand generation of the
pic register loading logic for the function prologue.  That part of the
prologue gets line number info of the statement that causes the generation.

My quick fix is:
Index: gcc/config/arm/arm.c
===
--- gcc/config/arm/arm.c(revision 159525)
+++ gcc/config/arm/arm.c(working copy)
@@ -4897,13 +4897,23 @@
 process.  */
  if (current_ir_type () != IR_GIMPLE || currently_expanding_to_rtl)
{
+ /* We want the PIC register loading instructions to have
+the same line number info as the function
+prologue. */
+ location_t saved_curr_loc = get_curr_insn_source_location ();
+ set_curr_insn_source_location (cfun-function_start_locus);
+
  crtl-uses_pic_offset_table = 1;
  start_sequence ();

  arm_load_pic_register (0UL);

  seq = get_insns ();
  end_sequence ();
+
+ set_curr_insn_source_location (saved_curr_loc);
+
  /* We can be called during expansion of PHI nodes, where
 we can't yet emit instructions directly in the final
 insn stream.  Queue the insns on the entry edge, they will

This patch solves the issue for me.

This is the first time I try to do anything internally with GCC, so please
forgive my mistakes and show me the better way to fix the issue.


-- 
   Summary: PIC compilation on ARM screws up DWARF lineinfo in
function prologue
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gergely+gccbug at risko dot hu
 GCC build triplet: i486-linux-gnu
  GCC host triplet: i486-linux-gnu
GCC target triplet: arm-linux-gnueabi


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



[Bug middle-end/44101] [4.6 regression] ICE compiling 25_algorithms/fill/4.cc on Tru64 UNIX V5.1B

2010-05-18 Thread ro at gcc dot gnu dot org


--- Comment #3 from ro at gcc dot gnu dot org  2010-05-18 11:55 ---
Created an attachment (id=20694)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20694action=view)
preprocessed source code


-- 


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



[Bug fortran/43895] [OOP] internal compiler error: verify_ssa failed

2010-05-18 Thread janus at gcc dot gnu dot org


--- Comment #10 from janus at gcc dot gnu dot org  2010-05-18 12:19 ---
(In reply to comment #9)
  Btw, after the recent patch for PR43969, this might well be fixed already 
  ...
  
 Unfortunately, no, I still get the ICE.

Sure. Actually my comment was only targeted towards Tobias' ALLOCATED example,
not the original ICE :)


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org


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



[Bug fortran/43895] [OOP] internal compiler error: verify_ssa failed

2010-05-18 Thread burnus at gcc dot gnu dot org


--- Comment #11 from burnus at gcc dot gnu dot org  2010-05-18 12:24 ---
(In reply to comment #8)
  If one adds b = ALLOCATED(x) one finds:
 Where do you add this?

Add in bug14 of attachment 20491 before 'end subroutine':
  logical b
  b = allocated(a%a)

However, this is now fixed.

 * * *

There are other problems related to allocatable scalars, but I think those are
tracked in PR 42647. For instance (again based on attachment 20491):

  use d_mat_mod
  implicit none
  type(d_sparse_mat), ALLOCATABLE :: x
  call bug14(x) !  OK around here
contains
subroutine bug14(a)
  type(d_sparse_mat), ALLOCATABLE, intent(out) :: a
  logical b
  !  ICE here
  b = allocated(a); if (b) call abort() !  OK here
end subroutine bug14
end


-- 


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



[Bug debug/43821] -feliminate-dwarf2-dups produces no debug symbols in executable warning from dsymutil

2010-05-18 Thread iains at gcc dot gnu dot org


--- Comment #3 from iains at gcc dot gnu dot org  2010-05-18 12:30 ---
it still fails for me on ppc and i686 4.6.0 r159518 and 159528 resp.

gcc version 4.5.1 20100518 (prerelease) [gcc-4_5-branch revision 159528] (GCC) 
apollo:gcc-4-5-branch-build $ ./gcc/xgcc -B gcc -g -feliminate-dwarf2-dups
../tests/trivial-debug-sym.c 
warning: no debug symbols in executable (-arch i386)

$ cat ../tests/trivial-debug-sym.c 
int main (int ac, char *av[])
{
  int a ;
  return a + 1;
}

$ xcodebuild -version
Xcode 3.1.4
Component versions: DevToolsCore-1204.0; DevToolsSupport-1186.0
BuildVersion: 9M2809

$ ld -v
@(#)PROGRAM:ld  PROJECT:ld64-85.2.1

$ dsymutil -v
@(#)PROGRAM:dsymutil  PROJECT:dwarfutils-70


-- 


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



[Bug tree-optimization/44182] [4.5/4.6 Regression] -fcompare-debug failure (length) with -O1

2010-05-18 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2010-05-18 13:04 ---
I guess this is related to the EH rewrite in 4.5.
In particular, when building cfg for f2 in make_blocks on
(gdb) p debug_gimple_stmt (stmt)
S::f3 (this, D.2140);
(gdb) p stmt_can_throw_internal (stmt)
$47 = 0 '\000'
(gdb) p stmt_could_throw_p (stmt)
$48 = 1 '\001'

(apparently cfun-eh-throw_stmt_table is NULL).  This means a new bb isn't
created right after the call and so j = 0; stmt can be after it.  Later on
this j = 0; is replaced with DEBUG j = j_* and for -g0 case with nothing.
The only two calls for which add_stmt_to_eh_lp_fn is called before inlining
are
S::f2 (nc_1(D), D.2136);
and
S::~S (D.2136);
in f, no stmts in f2 nor f3.  During inlining of f2 into f copy_bb -
maybe_duplicate_eh_stmt_fn - add_stmt_to_eh_lp_fn is called on S::f3 (nc_1(D),
D.2158_8); and from that point the f3 call is considered
stmt_can_throw_internal.  As with -g the f3 call is followed by a DEBUG stmt
(which is invalid after it started to be a throwing insn), that bb is split
during copy_edges_for_bb, but the -g0 f3 call was the last, so no splitting
happens.  I wonder whether it is correct that stmt_can_throw_internal changes
on a call during inlining.  If it is always false or always true, then either
no DEBUG stmts would appear after it or no splitting would happen after the
call during inlining.  If it is intended that stmt_can_throw_internal changes
during inlining, then guess copy_edges_for_bb
1901  if (!gsi_end_p (si))
1902/* Note that bb's predecessor edges aren't necessarily
1903   right at this point; split_block doesn't care.  */
would need to skip over is_gimple_debug stmts for the test and if there are
any, drop them (or something else, Alex?).


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rth at gcc dot gnu dot org


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



[Bug lto/44184] asm goto does not work with LTO

2010-05-18 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2010-05-18 13:52 ---
Subject: Bug 44184

Author: steven
Date: Tue May 18 13:51:50 2010
New Revision: 159531

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159531
Log:
gcc/
PR lto/44184
* lto-streamer-out.c (output_gimple_stmt): Output number of labels
in a GIMPLE_ASM.
* lto-streamer-in.c (input_gimple_stmt): Read number of labels
in a GIMPLE_ASM.

testsuite/
PR lto/44184
* gcc.dg/lto/20100518_0.c: New test.


Added:
trunk/gcc/testsuite/gcc.dg/lto/20100518_0.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/lto-streamer-in.c
trunk/gcc/lto-streamer-out.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug lto/44184] asm goto does not work with LTO

2010-05-18 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2010-05-18 14:07 ---
Subject: Bug 44184

Author: steven
Date: Tue May 18 14:06:31 2010
New Revision: 159532

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159532
Log:
gcc/
PR lto/44184
* lto-streamer-out.c (output_gimple_stmt): Output number of labels
in a GIMPLE_ASM.
* lto-streamer-in.c (input_gimple_stmt): Read number of labels
in a GIMPLE_ASM.

testsuite/
PR lto/44184
* gcc.dg/lto/20100518_0.c: New test.

Added:
branches/gcc-4_5-branch/gcc/testsuite/gcc.dg/lto/20100518_0.c
Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/lto-streamer-in.c
branches/gcc-4_5-branch/gcc/lto-streamer-out.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug lto/44184] asm goto does not work with LTO

2010-05-18 Thread steven at gcc dot gnu dot org


--- Comment #3 from steven at gcc dot gnu dot org  2010-05-18 14:08 ---
Fixed for GCC 4.5.1 and later.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/44139] Exporting emutls symbols from a DLL broken on w32 targets

2010-05-18 Thread ktietz at gcc dot gnu dot org


--- Comment #11 from ktietz at gcc dot gnu dot org  2010-05-18 14:22 ---
(In reply to comment #10)
 Re-opening.  It turns out that GCC fails to actually apply the dllexport
 attribute to TLS control vars.  So solving the binutils problem allows
 auto-export of a TLS variable to work, but as auto-export gets disabled in the
 presence of any explicit dllexport directives, this isn't an effective
 solution.  I believe the problem needs to be addressed in
 config/i386/winnt.c#i386_pe_encode_section_info()
 

I have doubts about the approach in winnt.c, but well maybe I am wrong here. I
investigated for this issue and see the real issue in declaration cloning in
varasm.c's emutls_decl- function, which simply doesn't copy attributes of the
delaration, which then leads to issues about name-decoration.
Also the DECL_DLLIMPORT_P has to be copied here, too (for import).


-- 


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



[Bug target/44139] Exporting emutls symbols from a DLL broken on w32 targets

2010-05-18 Thread davek at gcc dot gnu dot org


--- Comment #12 from davek at gcc dot gnu dot org  2010-05-18 14:29 ---
(In reply to comment #11)

 I have doubts about the approach in winnt.c, but well maybe I am wrong here. I
 investigated for this issue and see the real issue in declaration cloning in
 varasm.c's emutls_decl- function, which simply doesn't copy attributes of the
 delaration, which then leads to issues about name-decoration.
 Also the DECL_DLLIMPORT_P has to be copied here, too (for import).

Well, what I was thinking when I wrote that is that we could recognize the
TARGET_EMUTLS_xxx_PREFIX in winnt.c, look up the original decl, and copy
whatever necessary attributes over at that time.  However it does look like the
TARGET_EMUTLS_VAR_INIT hook might be what we're actually looking for here; I'll
check the code.


-- 


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



[Bug target/44139] Exporting emutls symbols from a DLL broken on w32 targets

2010-05-18 Thread davek at gcc dot gnu dot org


--- Comment #13 from davek at gcc dot gnu dot org  2010-05-18 14:33 ---
(In reply to comment #12)
 TARGET_EMUTLS_VAR_INIT 

Nah, scratch that, it's not really sensible.


-- 


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



[Bug middle-end/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-18 Thread rguenth at gcc dot gnu dot org


--- Comment #10 from rguenth at gcc dot gnu dot org  2010-05-18 14:58 
---
(In reply to comment #9)
 But the standard says in [basic.types] that For any trivially copyable type 
 T,
 if two pointers to T point to distinct T objects obj1 and obj2, where neither
 obj1 nor obj2 is a base-class subobject, if the underlying bytes (1.7) making
 up obj1 are copied into obj2,40 obj2 shall subsequently hold the same value as
 obj1.

Yep.  But an assignment is not a byte-copy and exactly the assignment is
what invokes the undefined behavior (not the subsequent access).

So,

struct X
{
char data[ sizeof( float ) ];
};

int main()
{
X x1;
new( x1.data ) float( 3.14f );

X x2 = x1;


GCC sees this as reading the float object you made live in x1.data via
an lvalue of type X and thus decides that the float object is unused
and removes it.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org


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



[Bug target/44163] [4.6 Regression] Multiple failures in the objc and libgomp test suites

2010-05-18 Thread dje at gcc dot gnu dot org


-- 

dje at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-05-18 14:59:59
   date||


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



[Bug middle-end/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-18 Thread rguenth at gcc dot gnu dot org


--- Comment #11 from rguenth at gcc dot gnu dot org  2010-05-18 15:00 
---
(In reply to comment #10)
 (In reply to comment #9)
  But the standard says in [basic.types] that For any trivially copyable 
  type T,
  if two pointers to T point to distinct T objects obj1 and obj2, where 
  neither
  obj1 nor obj2 is a base-class subobject, if the underlying bytes (1.7) 
  making
  up obj1 are copied into obj2,40 obj2 shall subsequently hold the same value 
  as
  obj1.
 
 Yep.  But an assignment is not a byte-copy and exactly the assignment is
 what invokes the undefined behavior (not the subsequent access).
 
 So,
 
 struct X
 {
 char data[ sizeof( float ) ];
 };
 
 int main()
 {
 X x1;
 new( x1.data ) float( 3.14f );
 
 X x2 = x1;
 
 
 GCC sees this as reading the float object you made live in x1.data via
 an lvalue of type X and thus decides that the float object is unused
 and removes it.

Oh, and

 float is a trivially copyable type. Copying X results in copying the bytes
of
 X::data (because the default copy constructor of a class does a memberwise
 copy, and the default copy constructor of an array does an elementwise copy).
 Therefore, the underlying bytes of the object of type float, initialized at
 x1.data, are copied into x2.data, which then must, if interpreted as a float,
 hold the same value as the original object.

is not what the C++ frontend does.  It emits the assignment literally:

  cleanup_point  Unknown tree: expr_stmt
  (void) (x2 = TARGET_EXPR D.21180, x1) 
;

gimplified to

x2 = x1;


-- 


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



[Bug c++/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-18 Thread rguenth at gcc dot gnu dot org


--- Comment #12 from rguenth at gcc dot gnu dot org  2010-05-18 15:02 
---
Making this a C++ frontend bug.  The only way to avoid expanding the copy
to a loop is by using memcpy which will then run into PR42834.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu dot org
  Component|middle-end  |c++


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



[Bug lto/44143] [4.6 Regression] -fdump-tree-all for lto does not work as expected

2010-05-18 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2010-05-18 15:11 ---
Subject: Bug 44143

Author: rguenth
Date: Tue May 18 15:11:01 2010
New Revision: 159536

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159536
Log:
2010-05-18  Richard Guenther  rguent...@suse.de

PR lto/44143
* lto-wrapper.c (verbose): New variable.  Initialize from -v.
(debug): Initialize from -save-temps.
(collect_execute): Print command-line when verbose.
(run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
for ltrans invocation.  Produce -dumpbase flag again.
(process_args): Remove.
(main): Simplify.
* collect2.c (maybe_run_lto_and_relink): Only pass object
files to lto-wrapper.
* gcc.c (LINK_COMMAND_SPEC): Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/collect2.c
trunk/gcc/gcc.c
trunk/gcc/lto-wrapper.c


-- 


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



[Bug lto/44143] [4.6 Regression] -fdump-tree-all for lto does not work as expected

2010-05-18 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2010-05-18 15:11 ---
Fixed again.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/44139] Exporting emutls symbols from a DLL broken on w32 targets

2010-05-18 Thread ktietz at gcc dot gnu dot org


--- Comment #14 from ktietz at gcc dot gnu dot org  2010-05-18 15:18 ---
Hi Dave,

following patch solves the issue for me pretty well.

ChangeLog

  * varasm.c (emutls_decl): Clone attributes for new decl.

Index: gcc/gcc/varasm.c
===
--- gcc.orig/gcc/varasm.c   2010-05-18 13:19:20.0 +0200
+++ gcc/gcc/varasm.c2010-05-18 17:10:11.385445300 +0200
@@ -403,6 +403,8 @@ emutls_decl (tree decl)
int foo() { return i; }
__thread int i = 1;
  in which I goes from external to locally defined and initialized.  */
+  DECL_DLLIMPORT_P (to) = DECL_DLLIMPORT_P (decl);
+  DECL_ATTRIBUTES (to) = targetm.merge_decl_attributes (decl, to);

   TREE_STATIC (to) = TREE_STATIC (decl);
   TREE_USED (to) = TREE_USED (decl);


-- 


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



[Bug target/44139] Exporting emutls symbols from a DLL broken on w32 targets

2010-05-18 Thread davek at gcc dot gnu dot org


--- Comment #15 from davek at gcc dot gnu dot org  2010-05-18 15:26 ---
(In reply to comment #14)
 Hi Dave,
 
 following patch solves the issue for me pretty well.

That looks good to me to, although doing it in the middle-end makes me worry
that some other target might /not/ be expecting attributes to be merged from
one to the other!  That's the slight advantage of doing it in the encode
section hook, even though string-matching the symbols is a bit kludgey.

I can't test it right now owing to parallel make check being thoroughly borked
on cygwin :(  Could be a few days before it gets fixed and I can do anything
productive gcc-wise.


-- 


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



[Bug target/44132] [4.6 Regression] emutls is broken under a range of circumstances.

2010-05-18 Thread iains at gcc dot gnu dot org


--- Comment #18 from iains at gcc dot gnu dot org  2010-05-18 15:55 ---
(In reply to comment #17)
 Created an attachment (id=20693)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20693action=view) [edit]
 latest version
 
 a few more tweaks.
 with this emutls is working for lto/whopr

actually, with that patch,  lto is clean and whopr has reduced fails (still
some symbols not getting through).

 OMP is still broken

hmm. it's not quite that -- the working libgomp was *not* using emutls (but
standard pthread calls).

So the configury machinery is detecting that tls works on with the current
patch :)
-- it just doesn't work well enough ...  ;)


-- 


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



[Bug target/44139] Exporting emutls symbols from a DLL broken on w32 targets

2010-05-18 Thread dominiq at lps dot ens dot fr


--- Comment #16 from dominiq at lps dot ens dot fr  2010-05-18 16:28 ---
You may be interested by pr 44132.


-- 


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



[Bug target/44132] [4.6 Regression] emutls is broken under a range of circumstances.

2010-05-18 Thread dominiq at lps dot ens dot fr


--- Comment #19 from dominiq at lps dot ens dot fr  2010-05-18 16:55 ---
This PR may have an overlap with pr44139.


-- 


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



[Bug lto/44149] -fuse-linker-plugin lto1: internal compiler error: in lto_symtab_merge_decls_1, at lto-symtab.c:610

2010-05-18 Thread ccoutant at gcc dot gnu dot org


-- 

ccoutant at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ccoutant at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-05-17 09:10:19 |2010-05-18 18:15:27
   date||


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



[Bug rtl-optimization/44174] [4.4/4.5/4.6 Regression] can't find a register in class 'CLOBBERED_REGS' while reloading 'asm'

2010-05-18 Thread vmakarov at redhat dot com


--- Comment #1 from vmakarov at redhat dot com  2010-05-18 19:06 ---
  It will be fixed by IRA without cover classes which I am working on. The code
is planned to be included in gcc4.6.

  For older versions, it should be fixed in reload because I believe it is a
hidden reload bug.


-- 


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



[Bug target/44189] PIC compilation on ARM screws up DWARF lineinfo in function prologue

2010-05-18 Thread gergely+gccbug at risko dot hu


--- Comment #1 from gergely+gccbug at risko dot hu  2010-05-18 19:17 ---
Added wrong-debug as a keyword.


-- 

gergely+gccbug at risko dot hu changed:

   What|Removed |Added

 CC||gergely+gccbug at risko dot
   ||hu
   Keywords||wrong-debug


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



[Bug objc/44140] objc.dg/torture/tls/thr-init-3.m failure

2010-05-18 Thread ro at gcc dot gnu dot org


--- Comment #2 from ro at gcc dot gnu dot org  2010-05-18 19:39 ---
This happens on i386-pc-solaris2.11, too, but only with -flto and -fwhopr.


-- 

ro at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||ro at gcc dot gnu dot org


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



[Bug middle-end/44185] [4.6 regression] New prefetch test failures

2010-05-18 Thread changpeng dot fang at amd dot com


--- Comment #2 from changpeng dot fang at amd dot com  2010-05-18 19:39 
---
I have a patch to fix the test cases:
http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01359.html

For prefetch-6.c, patch http://gcc.gnu.org/ml/gcc-cvs/2010-05/msg00567.html
applies the insn to prefetch ratio heuristic to loops with known trip count,
and thus filtered one prefetch out.  Add --param min-insn-to-prefetch-ratio=6
(default is 10) fixes the problem.

For prefetch-7.c, patch http://gcc.gnu.org/ml/gcc-cvs/2010-05/msg00566.html
does not generate prefetch if the loop is far from being sufficiently unrolled
required by the prefetching.  In this case, prefetching requires the loop to be
unrolled 16 times, but the loop is not unrolled due to the parameter
constraint.
We remove --param max-unrolled-insns=1 to allow unrolling and thus generating
prefetches.  The movnti count is also adjusted.


-- 


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



[Bug objc/44140] objc.dg/torture/tls/thr-init-3.m failure

2010-05-18 Thread ro at gcc dot gnu dot org


--- Comment #3 from ro at gcc dot gnu dot org  2010-05-18 19:42 ---
Ian, you've introduced this testcase; could you have a look?


-- 

ro at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||developer at sandoe-
   ||acoustics dot co dot uk


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



[Bug c/19541] need another option to support what -I- did just besides -iquote

2010-05-18 Thread chris dot litchfield at gmail dot com


--- Comment #15 from chris dot litchfield at gmail dot com  2010-05-18 
19:48 ---
This is still a huge issue.  We would wish to inhibit use of the CURRENT
Working directory to find include files.  Basically FORCE every time a new
include file is found with #include to start AGAIN from the begining of the
Include Path system.  using -iquote will simply cause the same problem where an
include file that includes another include file will include that sub-include
file even if you can pulled it away in a previous include path.

Make files with VPATH or put Development paths first in lists are totally hosed
by removing the -I- functionality.  This is NOT an enhancement but a Priority 2
bug which there is NO WORKAROUND provided by removing a feature.  


-- 


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



[Bug objc/44140] objc.dg/torture/tls/thr-init-3.m failure

2010-05-18 Thread iains at gcc dot gnu dot org


--- Comment #4 from iains at gcc dot gnu dot org  2010-05-18 20:04 ---
(In reply to comment #3)
 Ian, you've introduced this testcase; could you have a look?

Yes.. working my way through ..
I'm sure that it is problem with ObjC 
(and ObjC++, if you apply
http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01039.html) 


-- 

iains at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|developer at sandoe-|iains at gcc dot gnu dot org
   |acoustics dot co dot uk |
 AssignedTo|unassigned at gcc dot gnu   |iains at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-05-18 20:04:17
   date||
   Target Milestone|--- |4.6.0


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



[Bug c++/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-18 Thread pluto at agmk dot net


--- Comment #13 from pluto at agmk dot net  2010-05-18 20:57 ---
btw. the boost::optional uses char-based storage and cast storage
- void* - some_type* via address() and get_object() methods.
it looks like aliasing violation too.


-- 


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



[Bug fortran/41859] ICE on invalid expression involving DT with pointer components in I/O

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #2 from dfranke at gcc dot gnu dot org  2010-05-18 21:17 ---
If
  print *, (foo())
is changed to
  print *, foo()

one gets:
$ gfortran-svn pr41859.f90
pr41859.f90:17.19:

print *, foo() ! -- ICE here!
   1
Error: Data transfer element at (1) cannot have POINTER components


Same for the second problem:

$ gfortran-svn pr41859-c1.f90 
pr41859-c1.f90:37.19:

print *, foo() ! 
   1
Error: Data transfer element at (1) cannot have PRIVATE components


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dfranke at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-05-18 21:17:52
   date||


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



[Bug fortran/41859] ICE on invalid expression involving DT with pointer components in I/O

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #3 from dfranke at gcc dot gnu dot org  2010-05-18 21:30 ---
Breakpoint 9, resolve_transfer (code=0x8bfed90) at
/home/daniel/svn/gcc-svn/gcc/fortran/resolve.c:7369
(gdb) list
7367  exp = code-expr1;
7368
7369  if (exp-expr_type != EXPR_VARIABLE  exp-expr_type !=
EXPR_FUNCTION)
7370return;
7371
(gdb) print *exp
$2 = {expr_type = EXPR_OP, ts = {type = BT_DERIVED, kind = 0, u = {derived =
0x8bc7ad8, cl = 0x8bc7ad8}, interface = 0x0, is_c_interop = 0, is_iso_c = 0,
f90_type = BT_UNKNOWN}, 
  rank = 0, shape = 0x0, symtree = 0x0, ref = 0x0, where = {nextc = 0x8bfa9ec,
lb = 0x8bfa9b0}, inline_noncopying_intrinsic = 0, is_boz = 0, is_snan = 0,
error = 0, 
  user_operator = 0, representation = {length = 0, string = 0x0}, value =
{logical = 27, iokind = 27, integer = {{_mp_alloc = 27, _mp_size = 0, _mp_d =
0x8bb1450}}, real = {{
_mpfr_prec = 27, _mpfr_sign = 0, _mpfr_exp = 146478160, _mpfr_d =
0x0}}, complex = {{re = {{_mpfr_prec = 27, _mpfr_sign = 0, _mpfr_exp =
146478160, _mpfr_d = 0x0}}, im = {
  {_mpfr_prec = 0, _mpfr_sign = 0, _mpfr_exp = 0, _mpfr_d = 0x0, op
= {op = INTRINSIC_PARENTHESES, uop = 0x0, op1 = 0x8bb1450, op2 = 0x0}, function
= {actual = 0x1b, 
  name = 0x0, isym = 0x8bb1450, esym = 0x0}, compcall = {actual = 0x1b,
name = 0x0, base_object = 0x8bb1450, tbp = 0x0, ignore_pass = 0, assign = 0},
character = {
  length = 27, string = 0x0}, constructor = 0x1b}}


-- 


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



[Bug rtl-optimization/43332] valgrind warns about using uninitialized variable with -fsched-pressure -fschedule-insns

2010-05-18 Thread vmakarov at redhat dot com


--- Comment #4 from vmakarov at redhat dot com  2010-05-18 21:40 ---
  Thanks for reporting the problem.  The problem has no effect on generated
code whatever initialization is used.  The code in question tries to get basic
block for BARRIER which is wrong.  Whatever it gets basic block for BARRIER the
code will still work right.

  In any case, it is really annoying to see such valgrind diagnostic. 
Therefore I'll send a patch to fix it soon.


-- 


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



[Bug libstdc++/44190] New: Debug vector resize does not update capacity

2010-05-18 Thread gcc-bugzilla at contacts dot eelis dot net
The assertion in the following testcase should /not/ fail, but does:

  #define _GLIBCXX_DEBUG
  #define _GLIBCXX_DEBUG_PEDANTIC

  #include vector
  #include cassert

  int main()
  {
std::vectorint v;
v.resize(10);
assert(v.size() = v.capacity());
  }


-- 
   Summary: Debug vector resize does not update capacity
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcc-bugzilla at contacts dot eelis dot net


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



[Bug libstdc++/44190] Debug vector resize does not update capacity

2010-05-18 Thread gcc-bugzilla at contacts dot eelis dot net


--- Comment #1 from gcc-bugzilla at contacts dot eelis dot net  2010-05-18 
21:45 ---
Created an attachment (id=20695)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20695action=view)
Trivial patch that fixes the problem.

The problem was just a missing call to _M_update_guaranteed_capacity().


-- 


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



[Bug c++/44188] Fails to produce DW_AT_typedef for typedef of anonymous struct

2010-05-18 Thread dodji at gcc dot gnu dot org


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-05-18 21:50:32
   date||


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



[Bug fortran/39427] F2003: Procedures with same name as types/type constructors

2010-05-18 Thread burnus at gcc dot gnu dot org


--- Comment #13 from burnus at gcc dot gnu dot org  2010-05-18 21:51 ---
Created an attachment (id=20696)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20696action=view)
Fifth draft patch - with test case

New approach. The attached patch now also works with twisted modules (cf. test
case in the attachment). However, it needs still some clean up as there are
test suite failures.

Additional tasks: (a) Check whether one can get rid of
gfc_match_structure_constructor. (b) Add check to ensure that the generic name
only contains functions and that the type name does not exist as specific
function name. (c) Do general clean up, bug fixing, and add test cases.

Regarding C489 [F2003] and C496 [F2008], see also:
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/b3580ffd988330d7


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #20599|0   |1
is obsolete||


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



[Bug fortran/41859] ICE on invalid expression involving DT with pointer components in I/O

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #4 from dfranke at gcc dot gnu dot org  2010-05-18 21:54 ---
Comment #3 is somewhat hard to parse. Once more with this reduced testcase:

  TYPE :: ptype
character, pointer, dimension(:) :: x = null()
  END TYPE
  TYPE(ptype) :: p
  print *, (p)! '()' are significant
end

Breakpoint 9, resolve_transfer (code=0x8bfed90) at
/home/daniel/svn/gcc-svn/gcc/fortran/resolve.c:7369
7369  if (exp-expr_type != EXPR_VARIABLE  exp-expr_type !=
EXPR_FUNCTION)
(gdb) list
7367  exp = code-expr1;
7368
7369  if (exp-expr_type != EXPR_VARIABLE  exp-expr_type !=
EXPR_FUNCTION)
7370return;
7371
(gdb) p exp-expr_type
$11 = EXPR_OP
(gdb) p exp-ts.u.derived-name
$12 = 0xb7f47a08 ptype
(gdb) p exp-value.op
$13 = {op = INTRINSIC_PARENTHESES, uop = 0x0, op1 = 0x8bb1450, op2 = 0x0}
(gdb) p exp-value.op.op1-expr_type
$14 = EXPR_VARIABLE
(gdb) p exp-value.op.op1-ts.u.derived-name
$15 = 0xb7f47a08 ptype

No idea how to fix this, adding the obvious check and workaround for EXPR_OP
feels wrong. More likely, EXPR_OP should never have been passed down here?!


-- 


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



[Bug rtl-optimization/43332] valgrind warns about using uninitialized variable with -fsched-pressure -fschedule-insns

2010-05-18 Thread vmakarov at gcc dot gnu dot org


--- Comment #5 from vmakarov at gcc dot gnu dot org  2010-05-18 22:09 
---
Subject: Bug 43332

Author: vmakarov
Date: Tue May 18 22:09:19 2010
New Revision: 159545

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159545
Log:
2010-05-18  Vladimir Makarov  vmaka...@redhat.com

PR rtl-optimization/43332
* haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/haifa-sched.c


-- 


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



[Bug fortran/42851] ICE (segfault) at gfc_trans_pointer_assignment for subpointer

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #2 from dfranke at gcc dot gnu dot org  2010-05-18 22:09 ---
Reduced testcase:

  type t
real :: a(3)
  end type t
contains
  function func(x)
type(t), target :: x(:)
real, dimension(:), pointer :: func
func = x%a(1)
  end function func
end


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dfranke at gcc dot gnu dot
   ||org
  Known to fail||4.4.3 4.5.1 4.6.0
   Priority|P5  |P3
Summary|[4.3/4.4/4.5] ICE (segfault)|ICE (segfault) at
   |at  |gfc_trans_pointer_assignment
   |gfc_trans_pointer_assignment|for subpointer
   |for subpointer  |
   Target Milestone|4.3.5   |---


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



[Bug libstdc++/44190] Debug vector resize does not update capacity

2010-05-18 Thread paolo dot carlini at oracle dot com


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-05-18 22:12:31
   date||


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



[Bug fortran/42851] ICE (segfault) at gfc_trans_pointer_assignment for subpointer

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #3 from dfranke at gcc dot gnu dot org  2010-05-18 22:22 ---
Roughly the same testcase, same backtrace.

*** This bug has been marked as a duplicate of 34640 ***


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug fortran/34640] ICE when assigning item of a derived-component to a pointer

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #14 from dfranke at gcc dot gnu dot org  2010-05-18 22:22 
---
*** Bug 42851 has been marked as a duplicate of this bug. ***


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org


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



[Bug rtl-optimization/43332] valgrind warns about using uninitialized variable with -fsched-pressure -fschedule-insns

2010-05-18 Thread zsojka at seznam dot cz


--- Comment #6 from zsojka at seznam dot cz  2010-05-18 22:22 ---
Thank you for fixing this. I hope to rebuild gcc with valgrind checking in few
days again.


-- 


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



[Bug fortran/38471] ICE with subreference pointer assignment

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #11 from dfranke at gcc dot gnu dot org  2010-05-18 22:26 
---
As commented multiple times in PR34640, given the similarity of the testcase,
the identical backtrace and the same assignee ...


-- 


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



[Bug fortran/38471] ICE with subreference pointer assignment

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #12 from dfranke at gcc dot gnu dot org  2010-05-18 22:28 
---
(In reply to comment #11)
 As commented multiple times in PR34640, given the similarity of the testcase,
 the identical backtrace and the same assignee ...



*** This bug has been marked as a duplicate of 34640 ***


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||DUPLICATE


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



[Bug fortran/34640] ICE when assigning item of a derived-component to a pointer

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #15 from dfranke at gcc dot gnu dot org  2010-05-18 22:28 
---
*** Bug 38471 has been marked as a duplicate of this bug. ***


-- 


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



[Bug fortran/34640] ICE when assigning item of a derived-component to a pointer

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #16 from dfranke at gcc dot gnu dot org  2010-05-18 22:30 
---
The dupes PR38471 and PR42851 have more testcases, the former an equally
lengthy discussion as this PR.


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dfranke at gcc dot gnu dot
   ||org


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



[Bug c/44191] New: -E output broken for gcc-4.5.0

2010-05-18 Thread gcc-bug at andihellmund dot com
Hey,

while working on a low-prio PR24024, I recognized that the -E output of
gcc-4.5.0 is somehow broken for certain constructs, for example:

 test.c 
int main ()
{
  int ret, a;

  ret = a + \
  b;
}
 END test.c 

(gcc-4.5.0) # gcc -E test.c
# 1 test.c
# 1 built-in
# 1 command-line
# 1 test.c
int main ()
{
int ret, a;
ret = a +
 b;
}

I also tested this on older versions of gcc and each of these versions (4.2.0,
4.3.0 and 4.4.3) return the expected output:

# 1 test.c
# 1 built-in
# 1 command-line
# 1 test.c
int main ()
{
int ret, a;
ret = a + b;

}

I currently suspect that this incorrect output in gcc-4.5.0 is caused by
_cpp_clean_line. For my understanding, _cpp_clean_line should detect the splice
operator and merge the two lines to form a new logical line which is then
output due to the -E option.


-- 
   Summary: -E output broken for gcc-4.5.0
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcc-bug at andihellmund dot com
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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



[Bug fortran/43591] PPC: internal compiler error: in gfc_traverse_expr, at fortran/expr.c:3604

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #18 from dfranke at gcc dot gnu dot org  2010-05-18 22:36 
---
(In reply to comment #17)
 Fixed on the trunk (4.6). Planned to be committed also to GCC 4.5.1.

Patch was applied to trunk about 6 weeks ago - how are the backporting plans?


-- 


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



[Bug fortran/43266] ICE on invalid: in ensure_not_abstract_walker, at fortran/resolve.c:10290

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #7 from dfranke at gcc dot gnu dot org  2010-05-18 22:38 ---
Paul, is there anything left to do here or can this PR be closed?


-- 


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



[Bug target/44139] Exporting emutls symbols from a DLL broken on w32 targets

2010-05-18 Thread dannysmith at users dot sourceforge dot net


--- Comment #17 from dannysmith at users dot sourceforge dot net  
2010-05-18 22:43 ---
(In reply to comment #14)
 Index: gcc/gcc/varasm.c
 ===
 --- gcc.orig/gcc/varasm.c   2010-05-18 13:19:20.0 +0200
 +++ gcc/gcc/varasm.c2010-05-18 17:10:11.385445300 +0200
 @@ -403,6 +403,8 @@ emutls_decl (tree decl)
 int foo() { return i; }
 __thread int i = 1;
   in which I goes from external to locally defined and initialized.  */
 +  DECL_DLLIMPORT_P (to) = DECL_DLLIMPORT_P (decl);
 +  DECL_ATTRIBUTES (to) = targetm.merge_decl_attributes (decl, to);
 
TREE_STATIC (to) = TREE_STATIC (decl);
TREE_USED (to) = TREE_USED (decl);
 

I like this approach better too.  It would be even cleaner (here and elswhere)
if we had a decl_with_vis.dllexport_flag and DECL_DLLEXPORT_P.  14 spare bits
left in decl_with_vis.  Are they too precious??
Danny


-- 

dannysmith at users dot sourceforge dot net changed:

   What|Removed |Added

 CC||dannysmith at users dot
   ||sourceforge dot net


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



[Bug fortran/43179] ICE invalid if accessing array member of non-array

2010-05-18 Thread dfranke at gcc dot gnu dot org


--- Comment #4 from dfranke at gcc dot gnu dot org  2010-05-18 22:44 ---
(In reply to comment #2)
  OK for trunk with the usual embellishments of ChangeLogs and testcase?
 
 Yes, if you have an example for EXPR_FUNCTION - otherwise I would claim that
 EXPR_VARIABLE is enough.

Paul, any plans to wrap this up? :)


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dfranke at gcc dot gnu dot
   ||org


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



[Bug preprocessor/44191] -E output broken for gcc-4.5.0

2010-05-18 Thread jakub at gcc dot gnu dot org


--- Comment #1 from jakub at gcc dot gnu dot org  2010-05-18 22:44 ---
That's just incorrect assumption.
The reason why the first alternative is now preferred is to provide proper
locus for the b token.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug c++/44172] Compiling never ends

2010-05-18 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2010-05-18 22:46 ---
Well I don't think we should cause an infinite loop on any input.  Note Comeau
C++ also causes an infinite loop.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


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



[Bug libstdc++/44190] Debug vector resize does not update capacity

2010-05-18 Thread paolo dot carlini at oracle dot com


--- Comment #2 from paolo dot carlini at oracle dot com  2010-05-18 23:36 
---
I'm going to apply the patch: could you please provide name and family name for
the ChangeLog entry? Thanks!


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 CC||paolo dot carlini at oracle
   ||dot com


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



[Bug libstdc++/44190] Debug vector resize does not update capacity

2010-05-18 Thread gcc-bugzilla at contacts dot eelis dot net


--- Comment #3 from gcc-bugzilla at contacts dot eelis dot net  2010-05-18 
23:38 ---
(In reply to comment #2)
 I'm going to apply the patch

Great, thanks! :)

 could you please provide name and family name for
 the ChangeLog entry?

It's Eelis van der Weegen


-- 


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



[Bug libstdc++/44190] Debug vector resize does not update capacity

2010-05-18 Thread paolo at gcc dot gnu dot org


--- Comment #4 from paolo at gcc dot gnu dot org  2010-05-18 23:59 ---
Subject: Bug 44190

Author: paolo
Date: Tue May 18 23:58:50 2010
New Revision: 159549

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159549
Log:
2010-05-18  Eelis van der Weegen  gcc-bugzi...@contacts.eelis.net

PR libstdc++/44190
* include/debug/vector (vector::resize): Call
_M_update_guaranteed_capacity.
* testsuite/23_containers/vector/capacity/44190.cc: New.

Added:
trunk/libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/debug/vector


-- 


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



[Bug libstdc++/44190] Debug vector resize does not update capacity

2010-05-18 Thread paolo dot carlini at oracle dot com


--- Comment #5 from paolo dot carlini at oracle dot com  2010-05-19 00:00 
---
Fixed.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.6.0


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



[Bug bootstrap/44192] New: [4.6 regression] Failed to bootstrap

2010-05-18 Thread hjl dot tools at gmail dot com
On Linux, revision gave 159549:

../../src-trunk/gcc/fortran/trans-expr.c: In function
'gfc_conv_procedure_call':
../../src-trunk/gcc/fortran/trans-expr.c:3344:3: error: implicit declaration of
function 'build_call_list' [-Werror=implicit-function-declaration]
../../src-trunk/gcc/fortran/trans-expr.c:3344:12: error: assignment makes
pointer from integer without a cast [-Werror]


-- 
   Summary: [4.6 regression] Failed to bootstrap
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com


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



[Bug c++/44193] New: [4.3/4.4/4.5/4.6 Regression] function types, cv-quals and typename

2010-05-18 Thread jason at gcc dot gnu dot org
Starting with version 4.0 G++ fails to accept this testcase:

bool f(int i) { return i != 5; }

template class X, class P = bool(X)
struct Traits
{
 typedef P type;
};

template class X, class P = typename TraitsX::type
struct S
{
 const P p_;
 S( const P p ) : p_(p) {} // const reference
};

template class X
SX make_s(const typename TraitsX::type  p) // const reference
{
 return SX(p); //  HERE
}

int main()
{
 make_sint(f);
}

because the parameter of make_sint ends up with reference to const function
type.  This is wrong; applying const to a function type should produce the same
function type, not a const variant.


-- 
   Summary: [4.3/4.4/4.5/4.6 Regression] function types, cv-quals
and typename
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: jason at gcc dot gnu dot org
ReportedBy: jason at gcc dot gnu dot org


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



[Bug c++/44193] [4.3/4.4/4.5/4.6 Regression] function types, cv-quals and typename

2010-05-18 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-05-19 04:03:15
   date||


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



[Bug fortran/43072] unneeded temporary (s=s+f(a))

2010-05-18 Thread pault at gcc dot gnu dot org


--- Comment #9 from pault at gcc dot gnu dot org  2010-05-19 04:28 ---
Fixed.  Thanks, Joost!

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED


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



[Bug fortran/43266] ICE on invalid: in ensure_not_abstract_walker, at fortran/resolve.c:10290

2010-05-18 Thread pault at gcc dot gnu dot org


--- Comment #8 from pault at gcc dot gnu dot org  2010-05-19 04:32 ---
Fixed. Thanks, Tobias.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/44194] New: struct returned by value generates useless stores

2010-05-18 Thread jhaberman at gmail dot com
Test case:

--

#include stdint.h

struct twoints { uint64_t a, b; } foo();
void bar(uint64_t a, uint64_t b);

void func() {
  struct twoints s = foo();
  bar(s.a, s.b);
}

--

$ gcc -save-temps -Wall -c -o testbad.o -msse2 -O3 -fomit-frame-pointer
testbad.c 
$ objdump -d -r -M intel testbad.o

testbad.o: file format elf64-x86-64


Disassembly of section .text:

 func:
   0:   48 83 ec 28 subrsp,0x28
   4:   31 c0   xoreax,eax
   6:   e8 00 00 00 00  call   b func+0xb
7: R_X86_64_PC32foo-0x4
   b:   48 89 04 24 movQWORD PTR [rsp],rax
   f:   48 89 54 24 08  movQWORD PTR [rsp+0x8],rdx
  14:   48 89 d6movrsi,rdx
  17:   48 89 44 24 10  movQWORD PTR [rsp+0x10],rax
  1c:   48 89 54 24 18  movQWORD PTR [rsp+0x18],rdx
  21:   48 89 c7movrdi,rax
  24:   48 83 c4 28 addrsp,0x28
  28:   e9 00 00 00 00  jmp2d func+0x2d
29: R_X86_64_PC32   bar-0x4

--

As you can see above, rax and rdx are stored to the stack twice, but these
stores are unnecessary.

$ gcc -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5'
--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--enable-multiarch --enable-linker-build-id --with-system-zlib
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls
--enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc
--disable-werror --with-arch-32=i486 --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)


-- 
   Summary: struct returned by value generates useless stores
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jhaberman at gmail dot com
 GCC build triplet: x86_64-linux-gnu
  GCC host triplet: x86_64-linux-gnu
GCC target triplet: x86_64-linux-gnu


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



[Bug bootstrap/44192] [4.6 regression] Failed to bootstrap

2010-05-18 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2010-05-19 05:42 ---
Fixed as of revision 159555.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug fortran/41859] ICE on invalid expression involving DT with pointer components in I/O

2010-05-18 Thread jvdelisle at gcc dot gnu dot org


--- Comment #5 from jvdelisle at gcc dot gnu dot org  2010-05-19 05:47 
---
I have a patch testing.


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jvdelisle at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-05-18 21:17:52 |2010-05-19 05:47:39
   date||


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