[Bug fortran/46087] Double precision values, when read in from data file, include random trailing numbers

2010-10-20 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46087

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu.org

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2010-10-20 
07:20:18 UTC ---
(In reply to comment #0)
 Results using gfortran 4.5.1:
 2.18015987

There are also different philosophies how many digits shall be printed with
list-directed I/O (fmt=*). Some compilers do not print the last / the last
few digits to avoid such puzzling results. gfortran prints all to allow
lossless reading of the written data.

However, you can use an explicit format and print fewer significant digits,
which avoids showing the last digits; for instance
 print '(g0.7)', 2.18
shows
2.18

Regarding the output:

 Results using f77:
 
 2.1800

That looks like a bug in Absoft's compiler: If the compiler shows that many
digits, it ought to show also the non-zero digits. For comparison, Intel,
PathScale and NAG show the following:
2.18015987
2.18016000
2.18015987


[Bug bootstrap/46086] fail to build gcc 4.5.2 on sparc64-portbld-freebsd9.0 - configure: error: cannot compute suffix of object files: cannot compile

2010-10-20 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46086

--- Comment #5 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-10-20 
07:26:30 UTC ---
 The versions of the libraries mentioned on my box are
 above the minimum recommended:
 
 mpfr-3.0.0
 gmp-5.0.1
 binutils-2.20.1_3
 
 or did I miss something else?

Yes, to read carefully, especially the second paragraph.


[Bug rtl-optimization/46088] [4.6 Regression] ICE: SIGSEGV in ix86_binary_operator_ok (i386.c:15025) with -Os -fnon-call-exceptions -fpeel-loops

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46088

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 CC||jakub at gcc dot gnu.org


[Bug fortran/46079] [4.6 Regression] ABI for empty stop statement broken

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46079

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P4
 CC||jakub at gcc dot gnu.org


[Bug c++/46078] [4.6 regression] new valgrind warnings when compiling an optimization test case

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46078

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20 
08:20:06 UTC ---
The errors in libcpp is just something that we need to suppress in valgrind
suppressions.


[Bug middle-end/46076] [4.6 regression] constant propagation and compile-time math no longer happening versus 4.4 and 4.5

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46076

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2
 CC||jakub at gcc dot gnu.org


[Bug tree-optimization/46068] [4.6 Regression] ICE: in consider_split, at ipa-split.c:313 with asm goto and __builtin_unreachable ()

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46068

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug tree-optimization/46066] [4.6 Regression] ICE: in create_parallel_loop, at tree-parloops.c:1455 with -ftree-parallelize-loops -g

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46066

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 CC||jakub at gcc dot gnu.org


[Bug target/46080] [4.4/4.5/4.6 Regression] incorrect precision of sqrtf builtin for x87 arithmetic (-mfpmath=387)

2010-10-20 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080

--- Comment #3 from Uros Bizjak ubizjak at gmail dot com 2010-10-20 08:28:57 
UTC ---
(In reply to comment #2)
 Created attachment 22089 [details]
 sh script to test sqrtf
 
 Similar problems can also be found with:
 
   printf (%.60f\n%.60f\n%.60f\n, sqrtf(x), sqrtf(x), sqrtf(x));
 
 I've found that every GCC version I could test was showing some incorrect
 behavior (but GCC 4.2.4 was the most consistent one). With the attached 
 script,
 I get:
 
-DSEP  -O0   -O1   -O2
 GCC 3.4.6   SSS   SSS   SDD   SDD
 GCC 4.1.3   SSS   SSS   DSS   DDS
 GCC 4.2.4   SSS   SSS   DDD   DDD   (x86)
 GCC 4.3.5   SSS   SSS   DSS   DDD   (ditto with GCC 4.3.2 on x86)
 GCC 4.4.5   DSS   SSD   DSS   DDD
 
 where S means that one gets the result in single precision (as expected) and D
 means that one gets the result in double precision.

You should use -ffloat-store to remove excess precision.


[Bug c++/46065] [4.6 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in poplevel_named_label_1, at cp/decl.c:477

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46065

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 CC||jakub at gcc dot gnu.org


[Bug tree-optimization/45860] [4.6 Regression] ICE: verify_ssa failed: virtual SSA name for non-VOP decl at -O1

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45860

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 CC||jakub at gcc dot gnu.org


[Bug c++/46056] [C++0x] range-based for loop does not destruct iterators

2010-10-20 Thread rodrigorivascosta at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46056

--- Comment #6 from Rodrigo Rivas rodrigorivascosta at gmail dot com 
2010-10-20 08:56:30 UTC ---
Ok, thank you for the report...
It looks like the range-for temporary completely ignore destructors.

Also, if the range is a temporary it gets destructed quite early, instead of
being kept alive because of the implicit reference.

for (auto x : temp() )
//the temporary is destroyed here
{
   //...
} //instead of here

It shouldn't be too difficult to patch, though, so I'll try and have a patch in
a while...


[Bug objc/23709] [4.3/4.4/4.5/4.6 Regression] error recovery is not smart enough

2010-10-20 Thread nicola at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23709

--- Comment #11 from Nicola Pero nicola at gcc dot gnu.org 2010-10-20 
09:03:10 UTC ---
Author: nicola
Date: Wed Oct 20 09:03:06 2010
New Revision: 165713

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165713
Log:
In gcc/testsuite/:
2010-10-20  Nicola Pero  nicola.p...@meta-innovation.com

PR objc/23709
* objc.dg/pr23709.m: New.
* obj-c++.dg/pr23709.m: New.

Added:
trunk/gcc/testsuite/obj-c++.dg/pr23709.mm
trunk/gcc/testsuite/objc.dg/pr23709.m
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug target/46092] New: Improve constant handling of thumb2 instructions

2010-10-20 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46092

   Summary: Improve constant handling of thumb2 instructions
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: car...@google.com
CC: car...@google.com
  Host: i686-linux
Target: arm-eabi
 Build: i686-linux


Compile the following code with options -march=armv7-a -mthumb -Os

unsigned long tv(unsigned long x)
{
  if (x = 65521)
x = x - 65521;
  return x;
}

gcc generates:

tv:
movwr3, #65520
cmp r0, r3
ittthi
subhi   r0, r0, #65024   // A
subhi   r0, r0, #496 // B
subhi   r0, r0, #1   // C
bx  lr

Notice that (x = x - 65521) is translated into 3 instructions. Actually 65521
can be loaded into register with one instruction. So the shorter result is:

tv:
movwr3, #65520
cmp r0, r3
ittthi
movwhi   r1, #65521
subhi   r0, r1
bx  lr

This should be improved by function arm_gen_constant. The function is already
commented with
/* ??? This needs more work for thumb2.  */


[Bug target/46080] [4.4/4.5/4.6 Regression] incorrect precision of sqrtf builtin for x87 arithmetic (-mfpmath=387)

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20 
09:39:29 UTC ---
Or in 4.6 better yet -std=c99 or -fexcess-precision=standard


[Bug tree-optimization/46066] [4.6 Regression] ICE: in create_parallel_loop, at tree-parloops.c:1455 with -ftree-parallelize-loops -g

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46066

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2010.10.20 09:52:32
 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20 
09:52:31 UTC ---
Created attachment 22090
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22090
gcc46-pr46066.patch

Untested fix.


[Bug target/46080] [4.4/4.5/4.6 Regression] incorrect precision of sqrtf builtin for x87 arithmetic (-mfpmath=387)

2010-10-20 Thread zimmerma+gcc at loria dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080

--- Comment #5 from Paul Zimmermann zimmerma+gcc at loria dot fr 2010-10-20 
09:54:01 UTC ---
(In reply to comment #3)
 You should use -ffloat-store to remove excess precision.

the main issue is not the excess of precision, but the fact that identical
calls
to printf with identical arguments give different values in the same program!

The fact that different versions of GCC behave differently vs precision is a
different issue.

Paul


[Bug tree-optimization/45860] [4.6 Regression] ICE: verify_ssa failed: virtual SSA name for non-VOP decl at -O1

2010-10-20 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45860

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-20 
09:57:41 UTC ---
I have a patch.


[Bug c++/46056] [C++0x] range-based for loop does not destruct iterators

2010-10-20 Thread rodrigorivascosta at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46056

--- Comment #7 from Rodrigo Rivas rodrigorivascosta at gmail dot com 
2010-10-20 10:06:39 UTC ---
I've just sent a patch to gcc-patches:
http://gcc.gnu.org/ml/gcc-patches/2010-10/msg01699.html

In the testcase I added a lot of other destructor checks, just to be sure.


[Bug lto/46083] gcc.dg/initpri1.c FAILs with -flto/-fwhopr (attribute constructor/destructor doesn't work)

2010-10-20 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46083

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-20 
10:06:54 UTC ---
Honza, maybe your constructor re-ordering doesn't honor priority?


[Bug target/46080] [4.4/4.5/4.6 Regression] incorrect precision of sqrtf builtin for x87 arithmetic (-mfpmath=387)

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20 
10:46:14 UTC ---
That depends on the register allocation, whether the result of fsqrt needs to
be flushed into memory or can stay in the i387 register stack.  In the former
case it gets rounded from long double to float, in the latter case it doesn't.

OT, I wonder about:
  /* Test the result; if it is NaN, set errno=EDOM because
 the argument was not in the domain.  */
  do_compare_rtx_and_jump (target, target, EQ, 0, GET_MODE (target),
   NULL_RTX, NULL_RTX, lab,
   /* The jump is very likely.  */
   REG_BR_PROB_BASE - (REG_BR_PROB_BASE / 2000 - 1));
Why do we use (EQ target target) here instead of (ORDERED target target)?
At least on i?87 the latter is cheaper than the former, we eventually simplify
it, but it would be IMHO better to avoid generating useless rtx when the
comparison often needs to be split into ORDERED  UNEQ.


[Bug target/46093] New: code compiled with -fsplit-stack crashes when passing large struct

2010-10-20 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46093

   Summary: code compiled with -fsplit-stack crashes when passing
large struct
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 22091
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22091
testcase

Output (-g is not needed to reproduce):
$ gcc -fsplit-stack testcase.c -g
$ gdb ./a.out
...
Program received signal SIGSEGV, Segmentation fault.
0x00400ca9 in foo (s=...) at testcase.c:14
14bar (s);
(gdb) bt
#0  0x00400ca9 in foo (s=...) at testcase.c:14
#1  0x00400d84 in __morestack () at
/mnt/svn/gcc-trunk/libgcc/config/i386/morestack.S:374
#2  0x00400d00 in main () at testcase.c:21

I am not sure if that can be a problem here, but this is my binutils info:
$ ld -v
GNU ld (GNU Binutils) 2.20.1.20100303


[Bug tree-optimization/45860] [4.6 Regression] ICE: verify_ssa failed: virtual SSA name for non-VOP decl at -O1

2010-10-20 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45860

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-20 
11:09:57 UTC ---
Author: rguenth
Date: Wed Oct 20 11:09:54 2010
New Revision: 165718

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165718
Log:
2010-10-20  Richard Guenther  rguent...@suse.de

PR tree-optimization/45860
* tree-ssa-phiopt.c (cond_store_replacement): Do not do
conditional store replacement for non-register type stores.

* gcc.dg/torture/pr45860.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr45860.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-phiopt.c


[Bug tree-optimization/46085] [4..6 Regression] gcc.dg/vect/fast-math-vect-reduc-[57].c failed with -mavx -ffast-math -O3

2010-10-20 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46085

--- Comment #4 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2010-10-20 
11:21:22 UTC ---
Author: hjl
Date: Wed Oct 20 11:21:19 2010
New Revision: 165719

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165719
Log:
Correct reduc_splus_v8sf and reduc_splus_v4df.

gcc/

2010-10-20  H.J. Lu  hongjiu...@intel.com

PR target/46085
* config/i386/sse.md (reduc_splus_v8sf): Updated.
(reduc_splus_v4df): Likewise.

gcc/testsuite/

2010-10-20  H.J. Lu  hongjiu...@intel.com

PR target/46085
* gcc.target/i386/pr46085-1.c: New.
* gcc.target/i386/pr46085-2.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.target/i386/pr46085-1.c
trunk/gcc/testsuite/gcc.target/i386/pr46085-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog


[Bug target/46094] New: -fsplit-stack doesn't honour x86_64 ABI wrt. stack alignment

2010-10-20 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46094

   Summary: -fsplit-stack doesn't honour x86_64 ABI wrt. stack
alignment
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


If I understand http://www.x86-64.org/documentation/abi.pdf correctly, and the
ABI described here is valid enough, -fsplit-stack doesn't align stack correctly
when calling functions.
At the moment of function entry, this should hold: (rsp15)==8

As example, I will use the testcase from PR46093 (
http://gcc.gnu.org/bugzilla/attachment.cgi?id=22091 ). There are values of rsp
at the moment of function entry:

GDB breakpoints:
b main
b foo
b __morestack
b __morestack_block_signals
b __generic_morestack
b __morestack_unblock_signals
b __generic_releasestack
b pthread_sigmask
b sigprocmask

(for some reason, breakpoint at __morestack wasn't set correctly by this
procedure, so I had to set it manually)

functionrsp
main0x7fffde58
__morestack 0x7fffde50
__morestack_block_signals   0x7fffddf0
sigprocmask 0x7fffddf0
__generic_morestack 0x7fffde00
__morestack_unblock_signals 0x77ff9ff8
sigprocmask 0x77ff9ff8
foo 0x77ff5fe8
...

this could cause problem if (for example) sigprocmask() used SSE instructions
to access stack


[Bug tree-optimization/46085] [4..6 Regression] gcc.dg/vect/fast-math-vect-reduc-[57].c failed with -mavx -ffast-math -O3

2010-10-20 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46085

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #5 from H.J. Lu hjl.tools at gmail dot com 2010-10-20 11:26:39 
UTC ---
Fixed.


[Bug c++/46065] [4.6 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in poplevel_named_label_1, at cp/decl.c:477

2010-10-20 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46065

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.10.20 11:34:47
 CC||hjl.tools at gmail dot com
 Ever Confirmed|0   |1

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2010-10-20 11:34:47 
UTC ---
It is caused by revision 162223:

http://gcc.gnu.org/ml/gcc-cvs/2010-07/msg00577.html


[Bug tree-optimization/45860] [4.6 Regression] ICE: verify_ssa failed: virtual SSA name for non-VOP decl at -O1

2010-10-20 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45860

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-20 
12:11:17 UTC ---
Fixed.


[Bug bootstrap/45954] LTO isn't enabled in stage1 cc1 with --with-build-config=bootstrap-lto

2010-10-20 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45954

--- Comment #7 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2010-10-20 
12:38:33 UTC ---
Author: hjl
Date: Wed Oct 20 12:38:22 2010
New Revision: 165721

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165721
Log:
Add LTO to boot language if it is enabled.

2010-10-20  H.J. Lu  hongjiu...@intel.com

PR bootstrap/45954
* config-lang.in (boot_language): Set to $enable_lto.

Modified:
trunk/gcc/lto/ChangeLog
trunk/gcc/lto/config-lang.in


[Bug bootstrap/45954] LTO isn't enabled in stage1 cc1 with --with-build-config=bootstrap-lto

2010-10-20 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45954

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

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

--- Comment #8 from H.J. Lu hjl.tools at gmail dot com 2010-10-20 12:40:11 
UTC ---
Fixed.


[Bug fortran/46067] [F03] invalid procedure pointer assignment not detected

2010-10-20 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46067

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2010.10.20 13:11:39
 AssignedTo|unassigned at gcc dot   |janus at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #5 from janus at gcc dot gnu.org 2010-10-20 13:11:39 UTC ---
Mine. The accepts-invalid problem in comment #2 is fixed by the following
patch:

Index: gcc/fortran/interface.c
===
--- gcc/fortran/interface.c(revision 165712)
+++ gcc/fortran/interface.c(working copy)
@@ -1056,7 +1056,7 @@ gfc_compare_interfaces (gfc_symbol *s1, gfc_symbol
   }

 /* Check type and rank.  */
-if (!compare_type_rank (f1-sym, f2-sym))
+if (!compare_type_rank (f2-sym, f1-sym))
   {
 if (errmsg != NULL)
   snprintf (errmsg, err_len, Type/rank mismatch in argument '%s',


[Bug debug/46095] New: [4.6 Regression] ICE: in dwarf2out_frame_debug_expr, at dwarf2out.c:2341 with -fstack-protector

2010-10-20 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46095

   Summary: [4.6 Regression] ICE: in dwarf2out_frame_debug_expr,
at dwarf2out.c:2341 with -fstack-protector
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 22092
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22092
reduced testcase

Compiler output:
$ gcc -O -fschedule-insns2 -fno-omit-frame-pointer -fstack-protector pr46095.c
pr46095.c: In function 'foo':
pr46095.c:8:1: internal compiler error: in dwarf2out_frame_debug_expr, at
dwarf2out.c:2341
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r165719 - crash
r163636 - OK


[Bug c/46090] 16 bit uint16_t puts non-zero in highest bits when shifting

2010-10-20 Thread kshakhna at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46090

--- Comment #2 from Kamo Shakhnazaryan kshakhna at gmail dot com 2010-10-20 
13:30:40 UTC ---
(In reply to comment #1)
 input * 0x0101 is really ((int)input) * 0x0101.  So this behavior is correct.

input is declared as uint16_t.

Why input * 0x0101 is really ((int)input) * 0x0101 ?


[Bug c/46090] 16 bit uint16_t puts non-zero in highest bits when shifting

2010-10-20 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46090

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2010-10-20 
13:34:31 UTC ---
Because that's what the C standard says, under the rules for integer promotions


[Bug bootstrap/44970] [4.6 regression] Revision 162270 failed to bootstrap

2010-10-20 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44970

--- Comment #88 from John David Anglin danglin at gcc dot gnu.org 2010-10-20 
13:41:38 UTC ---
(In reply to comment #85)
 Created attachment 22079 [details]
 patch
 I haven't yet tested this on a cross-compiler, but it bootstrapped and
 regtested fine on x86_64-pc-linux-gnu.

I also tested the patch on armv5tejl-unknown-linux-gnueabi.  The ICE in
function '__popcountsi2' is still there, so this must be a separate issue.


[Bug c++/46065] [4.6 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in poplevel_named_label_1, at cp/decl.c:477

2010-10-20 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46065

Nathan Froyd froydnj at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |froydnj at gcc dot gnu.org
   |gnu.org |

--- Comment #2 from Nathan Froyd froydnj at gcc dot gnu.org 2010-10-20 
13:46:08 UTC ---
I will fix this shortly after stage 3 starts.


[Bug c/45062] [4.6 Regression] Revision 162223 caused ICE at c-decl.c:4064

2010-10-20 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45062

Nathan Froyd froydnj at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||froydnj at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |froydnj at gcc dot gnu.org
   |gnu.org |

--- Comment #3 from Nathan Froyd froydnj at gcc dot gnu.org 2010-10-20 
13:47:51 UTC ---
I will fix this shortly after stage 3 starts.


[Bug c++/46096] New: Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread zweifel at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

   Summary: Code produces two different outputs when optimized
respectively with -O2 and without it.
   Product: gcc
   Version: 4.3.4
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zwei...@gmail.com


Created attachment 22093
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22093
Minimal testcase

The code attached is a very simple application of threads using SDL_threads
library. 

In the code just one thread is created and it should enter in a loop waiting
for a class variable to become 4 and exit printing END on the screen. Since
the variable is modified to 4 in the main program, the thread should exit and
print END on the screen always. However, this does not happen all the time in
the -O2 compiled version.

The compiled version WITHOUT -O2 gives the expected output END (Reproducible:
always).
On the other hand, the -O2 version of the code produces an executable which
sometimes print and sometimes do not print END on the screen (Occasionally
one may need to run the program 20 times to spot 1 error). 

I attached the very simple test.cpp file.

And here is the output from g++ without optimization:

g++ -v -save-temps -o sdl_thread -Wall test.cpp -lSDL 
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-4.3.4/work/gcc-4.3.4/configure
--prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.3.4
--includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include
--datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.4
--mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.4/man
--infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.4/info
--with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include/g++-v4
--host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec
--disable-fixed-point --enable-nls --without-included-gettext
--with-system-zlib --disable-checking --disable-werror --enable-secureplt
--disable-multilib --enable-libmudflap --disable-libssp --enable-libgomp
--disable-libgcj --with-arch=i686 --enable-languages=c,c++,treelang,fortran
--enable-shared --enable-threads=posix --enable-__cxa_atexit
--enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/
--with-pkgversion='Gentoo 4.3.4 p1.1, pie-10.1.5'
Thread model: posix
gcc version 4.3.4 (Gentoo 4.3.4 p1.1, pie-10.1.5) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-o' 'sdl_thread' '-Wall'
'-shared-libgcc' '-mtune=generic' '-march=i686'
 /usr/libexec/gcc/i686-pc-linux-gnu/4.3.4/cc1plus -E -quiet -v -D_GNU_SOURCE
test.cpp -D_FORTIFY_SOURCE=2 -mtune=generic -march=i686 -Wall -fpch-preprocess
-o test.ii
ignoring nonexistent directory
/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../../i686-pc-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include/g++-v4
 /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include/g++-v4/i686-pc-linux-gnu
 /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include/g++-v4/backward
 /usr/local/include
 /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include
 /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-o' 'sdl_thread' '-Wall'
'-shared-libgcc' '-mtune=generic' '-march=i686'
 /usr/libexec/gcc/i686-pc-linux-gnu/4.3.4/cc1plus -fpreprocessed test.ii -quiet
-dumpbase test.cpp -mtune=generic -march=i686 -auxbase test -Wall -version -o
test.s
GNU C++ (Gentoo 4.3.4 p1.1, pie-10.1.5) version 4.3.4 (i686-pc-linux-gnu)
compiled by GNU C version 4.3.4, GMP version 4.3.2, MPFR version 2.4.1-p5.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: a9af7e955b36498814b0c0d47ad1b377
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-o' 'sdl_thread' '-Wall'
'-shared-libgcc' '-mtune=generic' '-march=i686'
 /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../../i686-pc-linux-gnu/bin/as -V
-Qy -o test.o test.s
GNU assembler version 2.18 (i686-pc-linux-gnu) using BFD version (GNU Binutils)
2.18
COMPILER_PATH=/usr/libexec/gcc/i686-pc-linux-gnu/4.3.4/:/usr/libexec/gcc/i686-pc-linux-gnu/4.3.4/:/usr/libexec/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/:/usr/lib/gcc/i686-pc-linux-gnu/:/usr/libexec/gcc/i686-pc-linux-gnu/4.3.4/:/usr/libexec/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/:/usr/lib/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../../i686-pc-linux-gnu/bin/
LIBRARY_PATH=/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/:/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/:/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../../i686-pc-linux-gnu/lib/:/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-o' 'sdl_thread' '-Wall'
'-shared-libgcc' '-mtune=generic' '-march=i686'
 /usr/libexec/gcc/i686-pc-linux-gnu/4.3.4/collect2 --eh-frame-hdr -m elf_i386
-dynamic-linker 

[Bug fortran/42169] [4.4/4.5/4.6 Regression] gfortran.dg/pr41928.f90:47: internal compiler error: in store_can_be_removed_p, at ira-emit.c:371

2010-10-20 Thread vmakarov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42169

--- Comment #23 from Vladimir Makarov vmakarov at gcc dot gnu.org 2010-10-20 
13:51:37 UTC ---
Author: vmakarov
Date: Wed Oct 20 13:51:31 2010
New Revision: 165722

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165722
Log:
2010-10-20  Vladimir Makarov  vmaka...@redhat.com

PR fortran/42169
* ira-emit.c (store_can_be_removed_p): Return false instead of
gcc_unreachable.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/ira-emit.c


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID
   Severity|major   |normal

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2010-10-20 
14:00:49 UTC ---
There is no memory synchronisation, so there is no guarantee that the write to
alpha1-number ever becomes visible to other threads.


[Bug fortran/42169] [4.4/4.5/4.6 Regression] gfortran.dg/pr41928.f90:47: internal compiler error: in store_can_be_removed_p, at ira-emit.c:371

2010-10-20 Thread vmakarov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42169

--- Comment #24 from Vladimir Makarov vmakarov at gcc dot gnu.org 2010-10-20 
14:05:25 UTC ---
Author: vmakarov
Date: Wed Oct 20 14:05:21 2010
New Revision: 165723

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165723
Log:
2010-10-20  Vladimir Makarov  vmaka...@redhat.com

PR fortran/42169
* ira-emit.c (store_can_be_removed_p): Return false instead of
gcc_unreachable.


Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/ira-emit.c


[Bug fortran/42169] [4.4/4.5/4.6 Regression] gfortran.dg/pr41928.f90:47: internal compiler error: in store_can_be_removed_p, at ira-emit.c:371

2010-10-20 Thread vmakarov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42169

--- Comment #25 from Vladimir Makarov vmakarov at gcc dot gnu.org 2010-10-20 
14:06:11 UTC ---
Author: vmakarov
Date: Wed Oct 20 14:06:08 2010
New Revision: 165724

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165724
Log:
2010-10-20  Vladimir Makarov  vmaka...@redhat.com

PR fortran/42169
* ira-emit.c (store_can_be_removed_p): Return false instead of
gcc_unreachable.


Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/ira-emit.c


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread zweifel at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

--- Comment #2 from Danilo zweifel at gmail dot com 2010-10-20 14:07:45 UTC 
---
(In reply to comment #1)
 There is no memory synchronisation, so there is no guarantee that the write to
 alpha1-number ever becomes visible to other threads.

According to http://wiki.libsdl.org/moin.cgi/SDL_CreateThread, the threads
created share the same memory. So I guess sync is not needed.


[Bug bootstrap/44970] [4.6 regression] Revision 162270 failed to bootstrap

2010-10-20 Thread bonzini at gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44970

--- Comment #89 from Paolo Bonzini bonzini at gnu dot org 2010-10-20 14:09:33 
UTC ---
The armv5 failure is a stage2 miscompilation.  Is it caused by Bernd's patch
too?  Or by fwprop?

According to comment 22, previously it was not bootstrapping but the failure
was elsewhere.  But we don't know if it is one or two bugs, and we don't know
how it relates with the fwprop problem (which was latent all the time even
before Bernd's patch).  The only good news is that a stage2 libgcc crash is
slightly simpler to debug than a stage3 comparison failure.  In any case, the
next thing to do is to bisect to find where the crash appeared, then go to the
previous revision, try applying my patch and see if it fixes the failure of
comment 22.


[Bug lto/45667] [4.6 Regression] ICE: verify_stmts failed: type mismatch in address expression with -flto

2010-10-20 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45667

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-20 
14:11:09 UTC ---
Author: rguenth
Date: Wed Oct 20 14:11:06 2010
New Revision: 165725

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165725
Log:
2010-10-20  Richard Guenther  rguent...@suse.de

PR lto/45667
* lto-streamer-out.c (output_gimple_stmt): Fix typo.
* tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
(verify_gimple_assign_single): Disable ADDR_EXPR type check
when in LTO.

* g++.dg/lto/20101020-1_0.h: New testcase.
* g++.dg/lto/20101020-1_0.C: Likewise.
* g++.dg/lto/20101020-1_1.C: Likewise.

Added:
trunk/gcc/testsuite/g++.dg/lto/20101020-1_0.C
trunk/gcc/testsuite/g++.dg/lto/20101020-1_0.h
trunk/gcc/testsuite/g++.dg/lto/20101020-1_1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/lto-streamer-out.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-cfg.c


[Bug c++/46056] [C++0x] range-based for loop does not destruct iterators

2010-10-20 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46056

--- Comment #8 from Jason Merrill jason at gcc dot gnu.org 2010-10-20 
14:13:44 UTC ---
Author: jason
Date: Wed Oct 20 14:13:38 2010
New Revision: 165726

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165726
Log:
PR c++/46056
* parser.c (cp_convert_range_for): Call cp_finish_decl
instead of finish_expr_stmt.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/range-for7.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog


[Bug lto/45667] [4.6 Regression] ICE: verify_stmts failed: type mismatch in address expression with -flto

2010-10-20 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45667

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-20 
14:14:07 UTC ---
Fixed.


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread zweifel at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

Danilo zweifel at gmail dot com changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |

--- Comment #3 from Danilo zweifel at gmail dot com 2010-10-20 14:17:30 UTC 
---
Changed the status back to unconfirmed.


[Bug c++/46056] [C++0x] range-based for loop does not destruct iterators

2010-10-20 Thread alserkli at inbox dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46056

Alexander Klimov alserkli at inbox dot ru changed:

   What|Removed |Added

  Attachment #22086|0   |1
is obsolete||

--- Comment #9 from Alexander Klimov alserkli at inbox dot ru 2010-10-20 
14:19:23 UTC ---
Created attachment 22094
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22094
simple testcase

Your patch seems to work, thanks!

Btw, the original simple testcase did not contain

  It(const It){ ++it_counter; }

and thus would fail (It() is called twice, while ~It() -- thrice).


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2010-10-20 
14:24:30 UTC ---
yes, they share the same address space, but modern processors have multilevel
caches and unless you provide suitable synchronisation the write to
alpha1-number might not get made visible to other threads

I suggest you use a mutex around shared data


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20 
14:27:18 UTC ---
The field is not volatile, so in the loop nothing forces -number field to be
loaded from memory again.
So it is perfectly fine to optize the whole loop into:
if (alpha1-number!=4)
  for (;;); /* Endless loop.  */


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2010-10-20 
14:29:09 UTC ---
Using a mutex around the reads and writes of shared data will make it work as
expected, the compiler won't optimise away the read and will re-read the value
every time.


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot
   ||gnu.org

--- Comment #7 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-10-20 
14:34:40 UTC ---
 Using a mutex around the reads and writes of shared data will make it work as
 expected, the compiler won't optimise away the read and will re-read the value
 every time.

This is overkill here though, you just need:

  volatile alpha *alpha1 = ( alpha * )data;


[Bug c++/46097] New: Switch to warn of global variables in a C++ shared object

2010-10-20 Thread noloader at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46097

   Summary: Switch to warn of global variables in a C++ shared
object
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: noloa...@gmail.com


Feature reqeust only. Not a bug.

C++ shared objects are an interesting beast under certain circumstances (many
times, the shared object acts like a generic C module). Interesting includes:
* C++ module
* Shared object
* Shared object throws an exception which will cross module boundaries
* Shared object opened with RTLD_GLOBAL
* Shared object has global objects with destructors

Lots have been said about C++ exceptions, RTTI, type equality for the
'catch(const Exception)', and RTLD_GLOBAL (versus RTLD_LOCAL) [1,2,3,4,5].

When a module meets the above compile and runtime requirements, a crash can
occur in global objects with destructors when more than one process loads and
subsequently unloads a shared object.

A switch to warn of global variables in a compilation unit would be very
helpful for those who are aware of the issue (and the circumstances to
encounter the issue). It appears that GCC does not supply such a switch [6].

The switch would be useful for module writers since its not always feasible to
'hand audit' all project files. And a warning would be exetremely useful for
package maintainers who don't write the module - they simply fixup the code and
package it for a distribution.

Perhaps -Wglobal-variable?

Jeffrey Walton
Baltimore, MD, US

[1] Minimal GCC/Linux shared lib + EH bug example,
http://gcc.gnu.org/ml/gcc/2002-05/msg00866.html
[2] dlopen and placing exception body in .cpp file,
http://gcc.gnu.org/ml/gcc-help/2010-08/msg00290.html
[3] Comparing types across SOs (sic),
http://groups.google.com/group/cryptopp-users/browse_thread/thread/eb815f228db50380
[4] Errors with multiple loading cryptopp as shared lib on Linux,
http://groups.google.com/group/cryptopp-users/browse_thread/thread/68fbc22e8c6e2f48
[5] RTLD_GLOBAL and libcryptopp.so crash,
http://groups.google.com/group/cryptopp-users/browse_thread/thread/7eae009a4e02e726
[6] Audit Use of Global Variables in C++ Shared Object (GCC Warning?), GCC-Help
mailing list, October, 2010 [not yet indexed].


[Bug bootstrap/44970] [4.6 regression] Revision 162270 failed to bootstrap

2010-10-20 Thread dave at hiauly1 dot hia.nrc.ca
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44970

--- Comment #90 from dave at hiauly1 dot hia.nrc.ca 2010-10-20 14:39:26 UTC ---
 The armv5 failure is a stage2 miscompilation.  Is it caused by Bernd's patch
 too?  Or by fwprop?

Actually, the ICE I saw this morning was in stage3.  This box is only
accessible at my contractor's site, so my access to it is limited.

Dave


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

--- Comment #8 from Jonathan Wakely redi at gcc dot gnu.org 2010-10-20 
14:40:21 UTC ---
I don't recommend people use volatile to avoid multithreading races, it only
prevents compiler optimisations, not hardware reordering. Using proper atomics,
memory barriers or other explicit synchronisation is better.
But for this testcase, yes, volatile will fix it.

Danilo, you might like to read these
http://www.drdobbs.com/cpp/201804238
http://www.drdobbs.com/high-performance-computing/212701484


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread zweifel at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

--- Comment #9 from Danilo zweifel at gmail dot com 2010-10-20 14:43:18 UTC 
---
(In reply to comment #7)
  Using a mutex around the reads and writes of shared data will make it work 
  as
  expected, the compiler won't optimise away the read and will re-read the 
  value
  every time.
 
 This is overkill here though, you just need:
 
   volatile alpha *alpha1 = ( alpha * )data;

This solved it! Did not know about volatile variables. I was trying to avoid
exactly the use of mutexes and the like.

Thank you very much!


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread zweifel at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

Danilo zweifel at gmail dot com changed:

   What|Removed |Added

 Status|RESOLVED|CLOSED

--- Comment #10 from Danilo zweifel at gmail dot com 2010-10-20 14:45:18 UTC 
---
(In reply to comment #8)
 I don't recommend people use volatile to avoid multithreading races, it only
 prevents compiler optimisations, not hardware reordering. Using proper 
 atomics,
 memory barriers or other explicit synchronisation is better.
 But for this testcase, yes, volatile will fix it.
 
 Danilo, you might like to read these
 http://www.drdobbs.com/cpp/201804238
 http://www.drdobbs.com/high-performance-computing/212701484

Thanks you very much, Jonathan! I will surely read the references.

I am considering this as closed.


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20 
14:46:24 UTC ---
Busy waiting is rarely a good idea, so it depends on what are you exactly
waiting for and whether say pthread_barrier_wait, or mutex, or condvar etc.
wouldn't be more appropriate.


[Bug tree-optimization/38153] ICE in testcase when compiled with -ftree-parallelize-loops

2010-10-20 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38153

Zdenek Sojka zsojka at seznam dot cz changed:

   What|Removed |Added

 CC||zsojka at seznam dot cz

--- Comment #4 from Zdenek Sojka zsojka at seznam dot cz 2010-10-20 14:52:32 
UTC ---
A bit different testcase, crashes on x86_64-pc-linux-gnu, r165719

- testcase.c -
void
foo (void **a, int i)
{
  while (i--)
a[i] = label;
label:;
}
--

$ gcc -O -ftree-parallelize-loops=2 testcase.c
testcase.c: In function 'foo':
testcase.c:2:1: error: label 
label has incorrect context in bb 6testcase.c:2:1: internal compiler error:
verify_flow_info failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

-ftree-parallelize-loops=N, crashes for N=2


[Bug target/45946] ICE: in extract_insn, at recog.c:2127 when using _Decimal128 with -Os -fno-omit-frame-pointer

2010-10-20 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45946

Zdenek Sojka zsojka at seznam dot cz changed:

   What|Removed |Added

  Known to fail||4.3.5, 4.4.5, 4.5.2

--- Comment #1 from Zdenek Sojka zsojka at seznam dot cz 2010-10-20 15:02:12 
UTC ---
4.1.2 doesn't know _Decimal128, 4.2.4 refuses to compile

$ gcc-4.1.2 -Os -fno-omit-frame-pointer pr45946.c
pr45946.c:3: warning: parameter names (without types) in function declaration

$ gcc-4.2.4 pr45946.c
pr45946.c:2: error: decimal floating point not supported for this target

4.3.5 and newer compile without any optimisation, but fail with given flags


[Bug c++/45983] [4.5 Regression] ICE: tree code 'template_parm_index' is not supported in gimple streams with -lto

2010-10-20 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45983

--- Comment #16 from Jason Merrill jason at gcc dot gnu.org 2010-10-20 
15:05:28 UTC ---
Author: jason
Date: Wed Oct 20 15:05:22 2010
New Revision: 165728

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165728
Log:
PR c++/45983
* tree.c (cp_build_qualified_type_real): Don't reuse a variant
with a different typedef variant of the element type.

Added:
branches/gcc-4_5-branch/gcc/testsuite/g++.dg/lto/pr45983_0.C
Modified:
branches/gcc-4_5-branch/gcc/cp/ChangeLog
branches/gcc-4_5-branch/gcc/cp/tree.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


[Bug target/46098] New: [4.5/4.6 Regression] ICE: in extract_insn, at recog.c:2100 with -msse3 -ffloat-store and __builtin_ia32_loadupd()

2010-10-20 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46098

   Summary: [4.5/4.6 Regression] ICE: in extract_insn, at
recog.c:2100 with -msse3 -ffloat-store and
__builtin_ia32_loadupd()
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


- testcase.c -
typedef double v2df __attribute__((vector_size (16)));

v2df foo (double *d)
{
  return __builtin_ia32_loadupd (d);
}
--

Compiler output:
$ gcc -msse3 -ffloat-store testcase.c
testcase.c: In function 'foo':
testcase.c:6:1: error: unrecognizable insn:
(insn 7 6 8 3 (set (mem/c/i:V2DF (plus:DI (reg/f:DI 54 virtual-stack-vars)
(const_int -16 [0xfff0])) [0 D.2706+0 S16 A128])
(unspec:V2DF [
(mem:V2DF (reg:DI 60) [0 S16 A8])
] UNSPEC_MOVU)) testcase.c:5 -1
 (nil))
testcase.c:6:1: internal compiler error: in extract_insn, at recog.c:2110
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r165719 - crash
r153685 - crash
4.5 r163761 - crash
4.4 r160770 - OK


[Bug tree-optimization/45919] [4.6 Regression] ICE: SIGSEGV in fold_ctor_reference (tree-ssa-ccp.c:1527) at -O1

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45919

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org
   |gnu.org |

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20 
15:19:12 UTC ---
Created attachment 22095
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22095
gcc46-pr45919.patch

Untested fix.


[Bug c++/46097] Switch to warn of global variables in a C++ shared object

2010-10-20 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46097

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2010-10-20 
15:52:53 UTC ---
(In reply to comment #0)
 When a module meets the above compile and runtime requirements, a crash can
 occur in global objects with destructors when more than one process loads and
 subsequently unloads a shared object.

Are you saying independent processes interfere with each other?


[Bug tree-optimization/46099] New: [4.5/4.6 Regression] ICE: in replace_ssa_name, at tree-cfg.c:5643 with -ftree-parallelize-loops -g

2010-10-20 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46099

   Summary: [4.5/4.6 Regression] ICE: in replace_ssa_name, at
tree-cfg.c:5643 with -ftree-parallelize-loops -g
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 22096
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22096
reduced testcase

Compiler output:
$ gcc -ftree-parallelize-loops=2 -g -O pr46099.c 
pr46099.c: In function 'foo':
pr46099.c:7:1: internal compiler error: in replace_ssa_name, at tree-cfg.c:5643
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r165719 - crash
r158095 - crash
r153685 - OK
4.5 r163761 - crash
4.4 r160770 - OK


[Bug fortran/46100] New: Non-variable pointer expression as actual argument to INTENT(OUT) non-pointer dummy

2010-10-20 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46100

   Summary: Non-variable pointer expression as actual argument to
INTENT(OUT) non-pointer dummy
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org


Reported at c.l.f by Thomas Jahns:
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread
/a64e2f255466a87a

GNU Fortran (and most other compilers) reject passing a non-variable pointer
expression as actual argument to an INTENT(OUT)/INTENT(INOUT) non-pointer dummy
argument.

The reason for rejecting is that the pointer expression (i.e. a function
returning a pointer) itself is not definable. However, I believe now that it
the code is valid. Thus, only if the argument were a pointer dummy or the
expression were not a pointer expression, it would be invalid.

Example:

call one (two ())
contains
  subroutine one (x)
integer, intent(inout) :: x
  end subroutine one
  function two ()
integer, pointer :: two
allocate(two)
  end function two
end

Error message:

call one (two ())
  1
Error: Non-variable expression in variable definition context (actual argument
to INTENT = OUT/INOUT) at (1)


[Bug rtl-optimization/43721] Failure to optimise (a/b) and (a%b) into single __aeabi_idivmod call

2010-10-20 Thread ams at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43721

Andrew Stubbs ams at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ams at gcc dot gnu.org

--- Comment #6 from Andrew Stubbs ams at gcc dot gnu.org 2010-10-20 16:53:13 
UTC ---
Here's the problem: expand_divmod always prefers the straight div library
call over the divmod library call, no exceptions.

Yes, divmodsi4 in a .md is indeed preferred over divsi4, so the
optimization works fine on targets that have those, but ARM doesn't, so those
rules are irrelevant.

ARM does not provide a separate library function for mod, so expand_divmod
does use divmod for mod operations, but never for div operations.

The reason for the apparent opposite rules appears to be that the divmodsi4
rule can be coded to auto-detect the most optimal kind of underlying operation
to use, whereas the library call is fixed, once chosen.

I see two possible ways to fix this:
 1. Teach CSE (or somewhere) that div and divmod library calls have some
overlap.
 2. Always prefer divmod, and find some other way to convert it to div, where
appropriate.

I don't see any way to generate the RTL with the right call, so I'm pretty sure
it does have to be fixed up after the fact.

Or, I could be way off. :)


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread zweifel at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

--- Comment #12 from Danilo zweifel at gmail dot com 2010-10-20 16:53:53 UTC 
---
(In reply to comment #11)
 Busy waiting is rarely a good idea, so it depends on what are you exactly
 waiting for and whether say pthread_barrier_wait, or mutex, or condvar etc.
 wouldn't be more appropriate.

My objective of using threads is to detach a system in a simulation
environment. For this reason, it would be impracticable to use any type of lock
for everytime the I/O changes (which will happen all the time), so I guess
volatiles are the only way??

I am still reading the sites posted by Jonathan and understanding the
difficulties of doing this in modern CPUs, while it is so easy in hardware.
Maybe just always compiling without optimizations will do?


[Bug debug/46101] New: [4.6 Regression] ICE: in build_abbrev_table, at dwarf2out.c:10333 with -feliminate-dwarf2-dups -g

2010-10-20 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46101

   Summary: [4.6 Regression] ICE: in build_abbrev_table, at
dwarf2out.c:10333 with -feliminate-dwarf2-dups -g
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 22097
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22097
reduced testcase

Compiler output:
$ gcc -feliminate-dwarf2-dups -g pr46101.C 
pr46101.C:6:4: internal compiler error: in build_abbrev_table, at
dwarf2out.c:10333
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r165719 - crash
r161659 - crash
r159696 - OK
4.5 r163761 - OK


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

--- Comment #13 from Jonathan Wakely redi at gcc dot gnu.org 2010-10-20 
16:57:45 UTC ---
If the value changes because of IO (rather than being set by another thread, as
in your testcase) then volatile might be the right option.  Condvars could also
work and allow you to block, rather than doing a busy wait while holding a
lock.


[Bug target/46098] [4.5/4.6 Regression] ICE: in extract_insn, at recog.c:2100 with -msse3 -ffloat-store and __builtin_ia32_loadupd()

2010-10-20 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46098

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.10.20 16:58:52
 CC||hjl.tools at gmail dot com,
   ||matz at gcc dot gnu.org
   Target Milestone|--- |4.6.0
 Ever Confirmed|0   |1

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2010-10-20 16:58:52 
UTC ---
It is caused by revision 146817:

http://gcc.gnu.org/ml/gcc-cvs/2009-04/msg01459.html


[Bug c++/46096] Code produces two different outputs when optimized respectively with -O2 and without it.

2010-10-20 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46096

--- Comment #14 from Eric Botcazou ebotcazou at gcc dot gnu.org 2010-10-20 
17:18:33 UTC ---
 Maybe just always compiling without optimizations will do?

Adding volatile is exactly saying do not optimize this loop, i.e. you get
at -O2 what you do at -O0, nothing more, nothing less.  This is a language
feature that is orthogonal to the synchronization stuff.


[Bug fortran/46100] Non-variable pointer expression as actual argument to INTENT(OUT) non-pointer dummy

2010-10-20 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46100

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2010-10-20 
17:21:30 UTC ---
Forgot to add: In the current ISO Fortran standard (Fortran 2008), one finds:

If a nonpointer dummy argument without the VALUE attribute corresponds
to a pointer actual argument that is pointer associated with a target,
the dummy argument becomes argument associated with that target.

The INTENT (INOUT) attribute for a nonpointer dummy argument specifies
that any actual argument that corresponds to the dummy argument shall be
definable.

definable -- capable of definition and permitted to become defined

Thus, it boils down to the questions whether the target (to which the
pointer is pointer associated) is definable. I think that is usually
the case, which makes the example valid.

 * * *

Note, however, that Richard Maine disagrees - he thinks that it is invalid
Fortran 2003, while it might be valid Fortran 2008. I cannot see an essential
difference between the F2003 and F2008 wording, but there might be.

(See thread and see interpretation request F95/0074 in
http://j3-fortran.org/doc/standing/links/022.txt . Using a pointer function as
LHS of an assignment is tracked by F2008's PR 40054.)


[Bug c++/46097] Switch to warn of global variables in a C++ shared object

2010-10-20 Thread noloader at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46097

--- Comment #2 from Jeffrey Walton noloader at gmail dot com 2010-10-20 
17:33:43 UTC ---
(In reply to comment #1)
 (In reply to comment #0)
  When a module meets the above compile and runtime requirements, a crash can
  occur in global objects with destructors when more than one process loads 
  and
  subsequently unloads a shared object.
 Are you saying independent processes interfere with each other?
Yes and No :/

If each process loads the SO with RTLD_LOCAL, then No. If the processes each
load with RTLD_GLOBAL (so an exception can be caught) *AND* the SO has an
non-trivial global (such as an object with a destructor) then YES.

Crpyto++ has a test case demonstrating the RTLD_GLOBAL crash at [1]. [1] is
accompanied by an analysis under GDB at [2]. Unfortunately, the test case is
not minimal. It is based on the Crypto++ library and needs intermediate SOs to
load the SO of interest. So the final executable never directly loads the
Crypto++ shared object.

Based on the demonstartion, Wei Dai modified global objects so that only PODs
were global. Non-trivial objects were hidden in a GetGlobalXxx() (some hand
waiving). A write up distribution packagers (from our understanding of the
moving parts) is available at [3,4].

[1] http://www.cryptopp.com/w/images/8/89/Cryptopp-SO-Test-1.zip
[2]
http://groups.google.com/group/cryptopp-users/browse_thread/thread/7eae009a4e02e726
[3] http://www.cryptopp.com/wiki/Linux#Note_for_Shared_Object_Callers
[4] http://www.cryptopp.com/wiki/Linux#Note_for_Distribution_Packagers


[Bug c++/46024] g++.dg/warn/miss-format-1.C FAILs on Solaris 8 and 9

2010-10-20 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46024

--- Comment #2 from Rainer Orth ro at gcc dot gnu.org 2010-10-20 17:36:24 UTC 
---
Author: ro
Date: Wed Oct 20 17:36:15 2010
New Revision: 165731

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165731
Log:
fixincludes:
PR c++/46024
* inclhack.def (solaris_sys_va_list): New fix.
* fixincl.x: Regenerate.
* tests/base/sys/va_list.h: New test.

gcc/testsuite:
PR c++/46024
* g++.dg/warn/miss-format-1.C: Enclose dg-error target list in braces.

Added:
trunk/fixincludes/tests/base/sys/va_list.h
Modified:
trunk/fixincludes/ChangeLog
trunk/fixincludes/fixincl.x
trunk/fixincludes/inclhack.def
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/warn/miss-format-1.C


[Bug c++/46097] Switch to warn of global variables in a C++ shared object

2010-10-20 Thread noloader at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46097

--- Comment #3 from Jeffrey Walton noloader at gmail dot com 2010-10-20 
17:38:59 UTC ---
(In reply to comment #2)
 (In reply to comment #1)
  (In reply to comment #0)
   When a module meets the above compile and runtime requirements, a crash 
   can
   occur in global objects with destructors when more than one process loads 
   and
   subsequently unloads a shared object.
  Are you saying independent processes interfere with each other?
 ...
 Crpyto++ has a test case demonstrating the RTLD_GLOBAL crash at [1]. [1] is
 accompanied by an analysis under GDB at [2]. Unfortunately, the test case is
 not minimal. It is based on the Crypto++ library and needs intermediate SOs to
 load the SO of interest. So the final executable never directly loads the
 Crypto++ shared object.
If a picture is worth a 1000 words, here's the scenario we are trying to
accomplist (to verify Crypto++ does not crash when unloaded). But keep in mind
that two distinct process will perform what's in the image.
http://www.cryptopp.com/wiki/File:Cryptopp-so-test.png


[Bug fortran/46100] [Fortran 2008] Non-variable pointer expression as actual argument to INTENT(OUT) non-pointer dummy

2010-10-20 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46100

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

Summary|Non-variable pointer|[Fortran 2008] Non-variable
   |expression as actual|pointer expression as
   |argument to INTENT(OUT) |actual argument to
   |non-pointer dummy   |INTENT(OUT) non-pointer
   ||dummy

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2010-10-20 
17:45:27 UTC ---
After carefully reading the interpretation request,
http://www.j3-fortran.org/doc/year/08/08-172.txt, I think the reason that it is
invalid in Fortran 95/2003 is that only variables are definable and as f() is
not a variable, it is invalid.

Fortran 2008 has (cf. PR 40054):
   R602 variable  is  designator
  or  expr
   C602 (R602) expr shall be a reference to a function that has a pointer
   result.

Which makes the program valid.


[Bug debug/46102] New: ICE: SIGSEGV in dwarf2out_finish (dwarf2out.c:8490) with -feliminate-dwarf2-dups when using precompiled headers

2010-10-20 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46102

   Summary: ICE: SIGSEGV in dwarf2out_finish (dwarf2out.c:8490)
with -feliminate-dwarf2-dups when using precompiled
headers
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


- testcase.H -
/* NOTHING */
--
- testcase.C -
#include testcase.H
int i;
--

Generate files:
echo   testcase.H
echo '#include testcase.H'  testcase.C
echo 'int i;'  testcase.C

Compile:
(testcase.H can be compiled with -feliminate-dwarf2-dups, it still fails)
$ gcc -g testcase.H
$ gcc -g testcase.C -feliminate-dwarf2-dups
testcase.C:2:6: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Related valgrind output:
==21702== Invalid read of size 8
==21702==at 0x74AB61: dwarf2out_finish (dwarf2out.c:8490)
==21702==by 0x9C6A15: toplev_main (toplev.c:961)
==21702==by 0x658ABBC: (below main) (in /lib64/libc-2.11.2.so)
==21702==  Address 0x20 is not stack'd, malloc'd or (recently) free'd
==21702== 
testcase.C:2:6: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r165719 - crash
r158095 - crash
r153685 - crash
4.1.2, 4.2.4, 4.3.5, 4.4.5 - crash


[Bug debug/46101] [4.6 Regression] ICE: in build_abbrev_table, at dwarf2out.c:10333 with -feliminate-dwarf2-dups -g

2010-10-20 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46101

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


[Bug tree-optimization/46099] [4.5/4.6 Regression] ICE: in replace_ssa_name, at tree-cfg.c:5643 with -ftree-parallelize-loops -g

2010-10-20 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46099

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.5.2


[Bug fortran/46100] [Fortran 2008] Non-variable pointer expression as actual argument to INTENT(OUT) non-pointer dummy

2010-10-20 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46100

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2010-10-20 
18:01:54 UTC ---
Untested patch:

diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 5711634..ef516a4 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -4316,7 +4316,18 @@ gfc_check_vardef_context (gfc_expr* e, bool pointer,
const char* context)
   symbol_attribute attr;
   gfc_ref* ref;

-  if (e-expr_type != EXPR_VARIABLE)
+  if (!pointer  e-expr_type == EXPR_FUNCTION
+   e-symtree-n.sym-result-attr.pointer)
+{
+  if (!(gfc_option.allow_std  GFC_STD_F2008))
+   {
+ if (context)
+   gfc_error (Fortran 2008: Pointer functions in variable definition
+   context (%s) at %L, context, e-where);
+ return FAILURE;
+   }
+}
+  else if (e-expr_type != EXPR_VARIABLE)
 {
   if (context)
gfc_error (Non-variable expression in variable definition context
(%s)


[Bug target/45946] ICE: in extract_insn, at recog.c:2127 when using _Decimal128 with -Os -fno-omit-frame-pointer

2010-10-20 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45946

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2010-10/msg01724.htm
   ||l
   Last reconfirmed||2010.10.20 18:03:32
 CC||hjl.tools at gmail dot com
 Ever Confirmed|0   |1

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2010-10-20 18:03:32 
UTC ---
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2010-10/msg01724.html


[Bug fortran/40054] [F08] Pointer functions as lvalue

2010-10-20 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40054

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu.org

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2010-10-20 
18:05:23 UTC ---
Another example (from PR 46100):

two() = 7
contains
  function two ()
integer, pointer  :: two
allocate(two)
  end function two
end



Fails with:

  function two ()
  1
two() = 7
   2
Error: Procedure 'two' at (1) is already defined at (2)

  function two ()
  1
Error: INTERNAL-PROC procedure at (1) is already declared as STATEMENT-PROC
procedure


[Bug c++/46103] New: [c++0x] moving from std::array copies the elements

2010-10-20 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46103

   Summary: [c++0x] moving from std::array copies the elements
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: marc.gli...@normalesup.org


Hello,

this is probably another not implemented yet (although the status page seems
to say that this is done), but I noticed that moving from:
struct A { Type t; };
properly moves t while moving from:
struct B { Type t[1]; };
copies t[0] (this is the case for std::array).


Re: [Bug fortran/40054] [F08] Pointer functions as lvalue

2010-10-20 Thread Mikael Morin
 two() = 7
I don't see how it is possible to distinguish between a statement function and 
an assignment here.



[Bug debug/46095] [4.6 Regression] ICE: in dwarf2out_frame_debug_expr, at dwarf2out.c:2341 with -fstack-protector

2010-10-20 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46095

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.10.20 19:09:13
 CC||hjl.tools at gmail dot com,
   ||rth at gcc dot gnu.org
   Target Milestone|--- |4.6.0
 Ever Confirmed|0   |1

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2010-10-20 19:09:13 
UTC ---
It is caused by revision 164628:

http://gcc.gnu.org/ml/gcc-cvs/2010-09/msg00926.html


[Bug tree-optimization/46099] [4.5/4.6 Regression] ICE: in replace_ssa_name, at tree-cfg.c:5643 with -ftree-parallelize-loops -g

2010-10-20 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46099

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.10.20 20:37:15
 CC||hjl.tools at gmail dot com,
   ||jakub at redhat dot com
 Ever Confirmed|0   |1

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2010-10-20 20:37:15 
UTC ---
It is caused by revision 157402:

http://gcc.gnu.org/ml/gcc-cvs/2010-03/msg00239.html


[Bug c++/46103] [c++0x] moving from std::array copies the elements

2010-10-20 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46103

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2010-10-20 
21:10:27 UTC ---
so this would demonstrate the problem?

struct MoveOnly {
  MoveOnly(const MoveOnly) = delete;
  MoveOnly(MoveOnly) { }
  MoveOnly() = default;
};

struct A {
  MoveOnly mo[1];
};

int main() {
  A a;
  A aa = static_castA(a);
}

(I haven't checked whether this is valid, or is meant to be implemented yet in
g++)


[Bug c/46104] New: Linker error cannot find -liberty

2010-10-20 Thread enrico.miglino at ovi dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46104

   Summary: Linker error cannot find -liberty
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: enrico.migl...@ovi.com
CC: dougmenc...@gmail.com
  Host: Ubuntu 10.04 LT
Target: ARM LPC32xx


This error was received trying to compile sourced for the ARM EABI firmware
from Embedded Artists using the gnu toolchain of CodeSourcery G++ Lite for ARM
EABI.

The toolchain compile correctly the sources, generate libraries and create
object files, but at link time linker reports the following error:

/home/tech/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/bin/ld:
cannot find -liberty

The specific linker command from the toolchain commands sequence is the
following:

arm-none-eabi-gcc timer_example.o   ../common/crt0_gnu.o  -static
-Wl,--start-group
/home/tech/CodeSourcery/software/csps/lpc32xx/lib/liblpc32xxgnu.a
/home/tech/CodeSourcery/software/csps/lpc32xx/bsps/ea3250/lib/libea3250gnu.a
/home/tech/CodeSourcery/software/lpc/lib/liblpcarm926ej-sgnu.a -lgcc -lc -lg
-lm -liberty -lstdc++ -lsupc++  -Wl,--end-group  -Xlinker -Map -Xlinker \
timer.map -Xlinker -T   ../linker/ldscript_ram_gnu.ld   \
-o timer.elf

After investigations and tests, the problem concerns libiberty library, that is
installed in the toolchain of CodeSourcery only as static library and not
shared.

Trying to find the library in the host, the result is the following:

$ find / -name *libiberty* -print

/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/arm-none-linux-gnueabi/sysroot/lib/libiberty.a
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/arm-none-linux-gnueabi/sysroot/vfp/lib/libiberty.a
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/arm-none-linux-gnueabi/lib/libiberty.a
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/arm-none-linux-gnueabi/lib/vfp/libiberty.a
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/lib/libiberty.a


[Bug c++/46105] New: Ordering failure among partial specializations with non-deduced context

2010-10-20 Thread potswa at mac dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46105

   Summary: Ordering failure among partial specializations with
non-deduced context
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: pot...@mac.com


See attachment.

The second arguments of the two partial specializations evaluate to void. If
void is substituted manually, the code works fine. (But the desired SFINAE side
effect is removed.)

As neither such argument contains a parameter in a deduced context, they should
not participate in deduction. Once the partial specialization has been
determined to match, the parameters should be substituted and evaluated to
simply void.


[Bug c++/46105] Ordering failure among partial specializations with non-deduced context

2010-10-20 Thread potswa at mac dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46105

--- Comment #1 from David Krauss potswa at mac dot com 2010-10-20 21:15:27 
UTC ---
Created attachment 22098
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22098
small example


[Bug tree-optimization/46066] [4.6 Regression] ICE: in create_parallel_loop, at tree-parloops.c:1455 with -ftree-parallelize-loops -g

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46066

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20 
21:15:52 UTC ---
Author: jakub
Date: Wed Oct 20 21:15:49 2010
New Revision: 165739

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165739
Log:
PR tree-optimization/46066
* tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
instead of gsi_last_bb.

* gcc.dg/autopar/pr46066.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/autopar/pr46066.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-parloops.c


[Bug bootstrap/46055] [4.6 Regression] -fwhopr failed configure test

2010-10-20 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46055

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #12 from H.J. Lu hjl.tools at gmail dot com 2010-10-20 21:17:30 
UTC ---
Fixed by

http://gcc.gnu.org/ml/gcc-cvs/2010-10/msg00840.html


[Bug c++/46105] Ordering failure among partial specializations with non-deduced context

2010-10-20 Thread potswa at mac dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46105

David Krauss potswa at mac dot com changed:

   What|Removed |Added

  Attachment #22098|0   |1
is obsolete||

--- Comment #2 from David Krauss potswa at mac dot com 2010-10-20 21:18:02 
UTC ---
Created attachment 22099
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22099
third time's a charm… content type autodetect failed


[Bug tree-optimization/45919] [4.6 Regression] ICE: SIGSEGV in fold_ctor_reference (tree-ssa-ccp.c:1527) at -O1

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45919

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20 
21:17:35 UTC ---
Author: jakub
Date: Wed Oct 20 21:17:30 2010
New Revision: 165740

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165740
Log:
PR tree-optimization/45919
* tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
array members.

* gcc.c-torture/compile/pr45919.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr45919.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-ccp.c


[Bug lto/45907] [4.6 Regression] Revision 164995 failed gcc.dg/torture/fp-int-convert-*.c

2010-10-20 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45907

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #3 from H.J. Lu hjl.tools at gmail dot com 2010-10-20 21:18:25 
UTC ---
Fixed.


[Bug c/46106] New: Error in Manpage? -fstack-protection = -fstack-protector(-all)

2010-10-20 Thread cdp_xe at gmx dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46106

   Summary: Error in Manpage? -fstack-protection =
-fstack-protector(-all)
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: cdp...@gmx.net
CC: cdp...@gmx.net


Hi,

isn't that wrong? Here is my very tiny patch for the gcc.1:

--- gcc.12010-10-20 23:11:16.0 +0200
+++ gcc.1.new2010-10-20 23:11:24.0 +0200
@@ -7661,7 +7661,7 @@ ratio is 3.
 .IP \fBssp-buffer-size\fR 4
 .IX Item ssp-buffer-size
 The minimum size of buffers (i.e. arrays) that will receive stack smashing
-protection when \fB\-fstack\-protection\fR is used.
+protection when \fB\-fstack\-protector\fR is used.
 .IP \fBmax-jump-thread-duplication-stmts\fR 4
 .IX Item max-jump-thread-duplication-stmts
 Maximum number of statements allowed in a block that needs to be

with best regards
Steffen


[Bug tree-optimization/46066] [4.6 Regression] ICE: in create_parallel_loop, at tree-parloops.c:1455 with -ftree-parallelize-loops -g

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46066

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20 
21:19:08 UTC ---
Fixed.


[Bug tree-optimization/45919] [4.6 Regression] ICE: SIGSEGV in fold_ctor_reference (tree-ssa-ccp.c:1527) at -O1

2010-10-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45919

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20 
21:19:34 UTC ---
Fixed.


  1   2   >