[Bug c++/53672] gcc/branches/cilkplus does not like C++ spawn (when optimized)

2012-06-15 Thread jjhforrest at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53672

--- Comment #3 from John Forrest jjhforrest at gmail dot com 2012-06-15 
06:57:43 UTC ---
Balaji,

Attached - AbcMatrix.ii gives segfault using compile

There are more than a dozen places in my code where code such as -

for (int i=0;inumberBlocks-1;i++)
  which[i]=cilk_spawn 
 pivotColumnDantzig(i,useRowCopy,updates,spare,best[i]);
which[numberBlocks-1]=pivotColumnDantzig(numberBlocks-1,useRowCopy,updates,
  
 spare,best[numberBlocks-1]);
cilk_sync;


  inside a class such as AbcMatrix segfaults on compilation.  If I 
create a non class static function doWork(AbcMatrix * matrix, other 
stuff) and in that function do

which[i]=cilk_spawn(matrix,other stuff)

it works.  There is not much of an overhead but is ugly and time consuming.

Hope you can reproduce fault.

Regards,

John

On 14/06/12 17:56, bviyer at gmail dot com wrote:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53672

 Balaji V. Iyerbviyer at gmail dot com  changed:

 What|Removed |Added
 
   CC||bviyer at gmail dot com

 --- Comment #1 from Balaji V. Iyerbviyer at gmail dot com  2012-06-14 
 16:56:19 UTC ---
 Hello John,
 This problem seem to be fixed as of this commit:

 git:0ac59c91905a106865589114d4e55f0c7f256874
 svn: revision:188147

 I tried your code and mine passes fine.

 Thanks,

 Balaji V. Iyer.



[Bug lto/43581] exception handling broken across shared libaries with -fuse-linker-plugin

2012-06-15 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43581

--- Comment #7 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-06-15 07:46:47 UTC ---
This problem was most probably due to binutils as I can reproduce it even with
4.8 using
GNU gold (GNU Binutils 2.21.51.20110514) 1.11
while looks fixed with 
GNU gold (GNU Binutils 2.22) 1.11

p.s. 
the test in comment 6 fails as dlclose triggers a (expected?) segfault in
__gxx_exception_cleanup(_Unwind_Reason_Code, _Unwind_Exception*) ()


[Bug go/53679] New: Build failure in libgo

2012-06-15 Thread allan at archlinux dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53679

 Bug #: 53679
   Summary: Build failure in libgo
Classification: Unclassified
   Product: gcc
   Version: 4.7.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: go
AssignedTo: i...@airs.com
ReportedBy: al...@archlinux.org


Since revision 187850, I get build failures for libgo due to the use of -Werror
and not checking the return value of write:

/build/src/gcc-4.7.1/libgo/runtime/print.c: In function 'gwrite':
/build/src/gcc-4.7.1/libgo/runtime/print.c:20:3: error: ignoring return value
of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
cc1: all warnings being treated as errors


[Bug libstdc++/53680] New: Link problems with static libstdc++

2012-06-15 Thread d.v.a at ngs dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

 Bug #: 53680
   Summary: Link problems with static libstdc++
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: d@ngs.ru
Target: i686-pc-linux-gnu


The same problem as fixed in Bug 12595 but in Release 4.7: versioned symbols in
the static libstdc++.a


[Bug bootstrap/53681] New: s390 bootstrap failure since 187965

2012-06-15 Thread krebbel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681

 Bug #: 53681
   Summary: s390 bootstrap failure since 187965
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: kreb...@gcc.gnu.org


int
__gcov_execle (const char *path, char *arg, ...)
{
  __builtin_va_list ap, aq;
  while (__builtin_va_arg (ap, char *))
  length++;
}

cc1 -fpreprocessed t.c -quiet

t.c: In function ‘__gcov_execle’:
t.c:6:7: error: ‘length’ undeclared (first use in this function)
   length++;
   ^
t.c:6:7: note: each undeclared identifier is reported only once for each
function it appears in
t.c:5:32: internal compiler error: Segmentation fault
   while (__builtin_va_arg (ap, char *))
^
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

(gdb) r
Starting program: /home/andreas/patched/gcc-head-build/gcc/cc1 -fpreprocessed
t.c -quiet
t.c: In function ‘__gcov_execle’:
t.c:6:7: error: ‘length’ undeclared (first use in this function)
   length++;
   ^
t.c:6:7: note: each undeclared identifier is reported only once for each
function it appears in

Program received signal SIGSEGV, Segmentation fault.
0x82618f00 in mark_sym_for_renaming (sym=0x3fff7f3a320)
at /home/andreas/patched/gcc-head/gcc/tree-into-ssa.c:2997
2997  bitmap_set_bit (SYMS_TO_RENAME (cfun), DECL_UID (sym));
(gdb) bt
#0  0x82618f00 in mark_sym_for_renaming (sym=0x3fff7f3a320)
at /home/andreas/patched/gcc-head/gcc/tree-into-ssa.c:2997
#1  0x83c03f98 in s390_gimplify_va_arg (valist=0x3fff8026300,
type=0x3fff7f549d8, pre_p=0x3ffd7d0, 
post_p=0x3ffa698) at
/home/andreas/patched/gcc-head/gcc/config/s390/s390.c:9047
#2  0x8057b192 in gimplify_va_arg_expr (expr_p=0x3fff8026290,
pre_p=0x3ffd7d0, post_p=0x3ffa698)
at /home/andreas/patched/gcc-head/gcc/builtins.c:4509
#3  0x81256160 in gimplify_expr (expr_p=0x3fff8026290,
pre_p=0x3ffd7d0, post_p=0x3ffa698, 
gimple_test_f=0x8109c684 is_gimple_val, fallback=1) at
/home/andreas/patched/gcc-head/gcc/gimplify.c:7178
#4  0x8125b52a in gimplify_expr (expr_p=0x3fff802a020,
pre_p=0x3ffd7d0, post_p=0x3ffa698, 
gimple_test_f=0x8109aca8 is_gimple_condexpr, fallback=1)
at /home/andreas/patched/gcc-head/gcc/gimplify.c:7743
#5  0x81233282 in gimplify_cond_expr (expr_p=0x3fff728,
pre_p=0x3ffd7d0, fallback=0)
at /home/andreas/patched/gcc-head/gcc/gimplify.c:3240
#6  0x81255808 in gimplify_expr (expr_p=0x3fff728,
pre_p=0x3ffd7d0, post_p=0x3ffbcf8, 
gimple_test_f=0x8123f6a8 is_gimple_stmt, fallback=0) at
/home/andreas/patched/gcc-head/gcc/gimplify.c:7085
#7  0x812474e8 in gimplify_stmt (stmt_p=0x3fff728,
seq_p=0x3ffd7d0)
at /home/andreas/patched/gcc-head/gcc/gimplify.c:5662
#8  0x812217e0 in gimplify_statement_list (expr_p=0x3fff802a060,
pre_p=0x3ffd7d0)
at /home/andreas/patched/gcc-head/gcc/gimplify.c:1529
#9  0x812597d2 in gimplify_expr (expr_p=0x3fff802a060,
pre_p=0x3ffd7d0, post_p=0x3ffcb10, 
gimple_test_f=0x8123f6a8 is_gimple_stmt, fallback=0) at
/home/andreas/patched/gcc-head/gcc/gimplify.c:7514
#10 0x812474e8 in gimplify_stmt (stmt_p=0x3fff802a060,
seq_p=0x3ffd7d0)
at /home/andreas/patched/gcc-head/gcc/gimplify.c:5662
#11 0x8121f25e in gimplify_bind_expr (expr_p=0x3fff8019298,
pre_p=0x3ffe7d8)
at /home/andreas/patched/gcc-head/gcc/gimplify.c:1223
#12 0x81257358 in gimplify_expr (expr_p=0x3fff8019298,
pre_p=0x3ffe7d8, post_p=0x3ffdaf0, 
gimple_test_f=0x8123f6a8 is_gimple_stmt, fallback=0) at
/home/andreas/patched/gcc-head/gcc/gimplify.c:7299
#13 0x812474e8 in gimplify_stmt (stmt_p=0x3fff8019298,
seq_p=0x3ffe7d8)
at /home/andreas/patched/gcc-head/gcc/gimplify.c:5662
#14 0x8125e548 in gimplify_body (fndecl=0x3fff8019200, do_parms=1
'\001')
at /home/andreas/patched/gcc-head/gcc/gimplify.c:8160
#15 0x8126070a in gimplify_function_tree (fndecl=0x3fff8019200)
at /home/andreas/patched/gcc-head/gcc/gimplify.c:8294
#16 0x809aabea in cgraph_analyze_function (node=0x3fff802b000)
at /home/andreas/patched/gcc-head/gcc/cgraphunit.c:652
#17 0x809ac59e in cgraph_analyze_functions () at
/home/andreas/patched/gcc-head/gcc/cgraphunit.c:938
#18 0x809b166e in finalize_compilation_unit () at
/home/andreas/patched/gcc-head/gcc/cgraphunit.c:2086
#19 0x8011b6c2 in c_write_global_declarations () at
/home/andreas/patched/gcc-head/gcc/c-decl.c:10112
#20 0x821d8430 in compile_file () at
/home/andreas/patched/gcc-head/gcc/toplev.c:568
#21 0x821db150 in do_compile () at

[Bug bootstrap/53681] s390 bootstrap failure since 187965

2012-06-15 Thread krebbel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681

Andreas Krebbel krebbel at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2
 CC||krebbel at gcc dot gnu.org,
   ||matz at suse dot de


[Bug bootstrap/53681] s390 bootstrap failure since 187965

2012-06-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
 CC||rguenth at gcc dot gnu.org

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-06-15 
08:26:17 UTC ---
This is an ice-on-invalid - how can that break bootstrap?


[Bug libstdc++/53680] Link problems with static libstdc++

2012-06-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2012-06-15
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-06-15 
08:27:53 UTC ---
Please provide more information, your assessment it's the same bug might not
be true.


[Bug bootstrap/53675] [4.8 Regression] bootstrap fails on netbsd5.1 due to unsupported dwarf4 info

2012-06-15 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53675

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.8.0


[Bug libstdc++/53680] Link problems with static libstdc++

2012-06-15 Thread d.v.a at ngs dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

--- Comment #2 from __vic d.v.a at ngs dot ru 2012-06-15 08:30:06 UTC ---
$ uname -a
Linux m246 2.6.18-194.26.1.el5 #1 SMP Tue Nov 9 12:54:40 EST 2010 i686 i686
i386 GNU/Linux
$ cat /etc/*-release
CentOS release 5.4 (Final)

When building on

$ uname -a
Linux jansmb 2.6.9-103.ELsmp #1 SMP Fri Dec 9 04:31:51 EST 2011 i686 i686 i386
GNU/Linux
$ cat /etc/*-release
CentOS release 4.9 (Final)

it's all right


[Bug bootstrap/53681] s390 bootstrap failure since 187965

2012-06-15 Thread krebbel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681

--- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-06-15 
08:30:21 UTC ---
(In reply to comment #1)
 This is an ice-on-invalid - how can that break bootstrap?

delta was a bit too eager. Same happens with:

int
__gcov_execle (const char *path, char *arg, ...)
{
  int length = 0;

  __builtin_va_list ap, aq;
  while (__builtin_va_arg (ap, char *))
  length++;
}


[Bug libstdc++/53680] Link problems with static libstdc++

2012-06-15 Thread d.v.a at ngs dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

--- Comment #3 from __vic d.v.a at ngs dot ru 2012-06-15 08:34:13 UTC ---
When I'm trying link libstdc++.a statically to my .so I see messages like:
undefined versioned symbol name std::defer_lock@@GLIBCPP_3

$ nm libstdc++.a | grep @

shows me that archive contains versioned symbols. Do you need the entire list?


[Bug bootstrap/53681] s390 bootstrap failure since 187965

2012-06-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-15 
08:42:03 UTC ---
When delta reducing ICE on valid, it is always better to add to a script second
compilation (perhaps with -O0 for speed) using some compiler where it initially
compiles fine to make sure delta doesn't turn ice-on-valid into ice-on-invalid.


[Bug libstdc++/49894] [C++0x] Uniform initialization in constructor

2012-06-15 Thread d.v.a at ngs dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49894

__vic d.v.a at ngs dot ru changed:

   What|Removed |Added

 Status|RESOLVED|CLOSED

--- Comment #13 from __vic d.v.a at ngs dot ru 2012-06-15 08:51:36 UTC ---
NSDMI works fine. Thanx


[Bug libstdc++/53680] Link problems with static libstdc++

2012-06-15 Thread d.v.a at ngs dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

--- Comment #4 from __vic d.v.a at ngs dot ru 2012-06-15 08:57:21 UTC ---
Note: undocumented configure option --disable-symvers helps but I think
building with default parameters must work properly


[Bug rtl-optimization/53533] [4.7/4.8 regression] vectorization causes loop unrolling test slowdown as measured by Adobe's C++Benchmark

2012-06-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53533

--- Comment #17 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-15 
09:03:04 UTC ---
This started with http://gcc.gnu.org/viewcvs?root=gccview=revrev=173856
The current cost model is seriously insufficient.


[Bug middle-end/53590] compiler fails to generate SIMD instruction for FP division

2012-06-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53590

--- Comment #9 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-06-15 
09:22:04 UTC ---
Author: ebotcazou
Date: Fri Jun 15 09:22:00 2012
New Revision: 188651

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188651
Log:
PR middle-end/53590
* common.opt (-fdelete-dead-exceptions): New switch.
* doc/invoke.texi (Code Gen Options): Document it.
* cse.c (count_reg_usage) CALL_INSN: Use !insn_nothrow_p in lieu of
insn_could_throw_p predicate.  Do not skip an insn that could throw
if dead exceptions can be deleted.
(insn_live_p): Likewise, do not return true in that case.
* dce.c (can_alter_cfg): New flag.
(deletable_insn_p): Do not return false for an insn that can throw if
the CFG can be altered and dead exceptions can be deleted.
(init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
* dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
predicate. Do not preserve an insn that could throw if dead exceptions
can be deleted.
* function.h (struct function): Add can_delete_dead_exceptions flag.
* function.c (allocate_struct_function): Set it.
* lto-streamer-in.c (input_struct_function_base): Stream it.
* lto-streamer-out.c (input_struct_function_base): Likewise.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
statement that could throw as necessary if dead exceptions can be
deleted.
ada/
* gcc-interface/misc.c (gnat_init_options_struct): Set
opts-x_flag_delete_dead_exceptions to 1.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/ada/ChangeLog
trunk/gcc/ada/gcc-interface/misc.c
trunk/gcc/common.opt
trunk/gcc/cse.c
trunk/gcc/dce.c
trunk/gcc/doc/invoke.texi
trunk/gcc/dse.c
trunk/gcc/function.c
trunk/gcc/function.h
trunk/gcc/lto-streamer-in.c
trunk/gcc/lto-streamer-out.c
trunk/gcc/tree-ssa-dce.c


[Bug middle-end/53590] compiler fails to generate SIMD instruction for FP division

2012-06-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53590

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.8.0

--- Comment #10 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-06-15 
10:00:25 UTC ---
Fixed on the mainline.


[Bug libstdc++/53680] Versioned symbols in static libstdc++

2012-06-15 Thread d.v.a at ngs dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

--- Comment #5 from __vic d.v.a at ngs dot ru 2012-06-15 10:22:36 UTC ---
The exact description:

$ g++ -o formats/alcatel_alm9_decoder.fmt -shared -Llib -static-libgcc  -O3
-Wl,-s -Wl,--no-undefined src/alcatel_alm9_decoder.o formats.a decoder.a
-ljanuary_tools -ljanuary
/usr/bin/ld: formats/alcatel_alm9_decoder.fmt: undefined versioned symbol name
_ZSt10adopt_lock@@GLIBCXX_3.4.11
/usr/bin/ld: failed to set dynamic section sizes: Bad value
collect2: error: ld returned 1 exit status


$ nm lib/libstdc++.a | grep adopt
 B _ZN9__gnu_cxx10adopt_lockE
 B _ZSt10adopt_lock@@GLIBCXX_3.4.11


[Bug libstdc++/53680] Versioned symbols in static libstdc++

2012-06-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-15 
10:25:32 UTC ---
(In reply to comment #4)
 Note: undocumented configure option --disable-symvers helps but I think
 building with default parameters must work properly

It's not undocumented
http://gcc.gnu.org/onlinedocs/libstdc++/manual/configure.html


[Bug libstdc++/53680] Versioned symbols in static libstdc++

2012-06-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

--- Comment #7 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-15 
10:29:36 UTC ---
isn't this PR 52689 ?


[Bug libstdc++/53680] Versioned symbols in static libstdc++

2012-06-15 Thread d.v.a at ngs dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

--- Comment #8 from __vic d.v.a at ngs dot ru 2012-06-15 10:30:30 UTC ---
(In reply to comment #6)
 (In reply to comment #4)
  Note: undocumented configure option --disable-symvers helps but I think
  building with default parameters must work properly
 
 It's not undocumented
 http://gcc.gnu.org/onlinedocs/libstdc++/manual/configure.html

Ok. But still. It must not be a mandatory option to build correct static lib


[Bug libstdc++/53680] Versioned symbols in static libstdc++

2012-06-15 Thread d.v.a at ngs dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

--- Comment #9 from __vic d.v.a at ngs dot ru 2012-06-15 10:33:13 UTC ---
(In reply to comment #7)
 isn't this PR 52689 ?

Probably it is.


[Bug libstdc++/53680] Versioned symbols in static libstdc++

2012-06-15 Thread d.v.a at ngs dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

--- Comment #10 from __vic d.v.a at ngs dot ru 2012-06-15 10:36:24 UTC ---
When 4.7.1 will be released?


[Bug libstdc++/53680] Versioned symbols in static libstdc++

2012-06-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53680

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||DUPLICATE

--- Comment #11 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-15 
10:37:41 UTC ---
yesterday

http://gcc.gnu.org/gcc-4.7/

marking as dup, please reopen if 4.7.1 doesn't fix it

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


[Bug libstdc++/52689] static linking with libstdc++ fails

2012-06-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52689

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 CC||d.v.a at ngs dot ru

--- Comment #23 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-15 
10:37:41 UTC ---
*** Bug 53680 has been marked as a duplicate of this bug. ***


[Bug ada/53592] ICE on assignment to component of vector_type

2012-06-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53592

--- Comment #3 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-06-15 
10:41:19 UTC ---
Author: ebotcazou
Date: Fri Jun 15 10:41:13 2012
New Revision: 188653

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188653
Log:
PR ada/53592
* gcc-interface/gigi.h (maybe_vector_array): Make static inline.
* gcc-interface/utils.c (maybe_vector_array): Delete.
* gcc-interface/trans.c (gnat_to_gnu) N_Indexed_Component: Mark the
array object as addressable if it has vector type and is on the LHS.

Added:
trunk/gcc/testsuite/gnat.dg/vect8.adb
trunk/gcc/testsuite/gnat.dg/vect8.ads
Modified:
trunk/gcc/ada/ChangeLog
trunk/gcc/ada/gcc-interface/gigi.h
trunk/gcc/ada/gcc-interface/trans.c
trunk/gcc/ada/gcc-interface/utils.c
trunk/gcc/testsuite/ChangeLog


[Bug target/53682] New: [4.7/4.8 Regression] ICE in cselib_lookup (SEGV) on i586-linux-gnu

2012-06-15 Thread doko at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53682

 Bug #: 53682
   Summary: [4.7/4.8 Regression] ICE in cselib_lookup (SEGV) on
i586-linux-gnu
Classification: Unclassified
   Product: gcc
   Version: 4.7.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: d...@gcc.gnu.org


Created attachment 27625
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27625
test case

works with 4.6 branch, fails with 4.7.1 on i586-linux-gnu, works on
x86_64-linux-gnu.

omitting one of the -fPIC, -fvisibility=hidden, -funroll-loops options avoids
the ice.

$ gcc -c -g -O2 -fPIC -fvisibility=hidden -funroll-loops  mini_q_math.c 
mini_q_math.c: In function 'ByteToDir':
mini_q_math.c:124:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.


Program received signal SIGSEGV, Segmentation fault.
0x081e657b in cselib_lookup(rtx_def*, machine_mode, int, machine_mode) ()
(gdb) bt
#0  0x081e657b in cselib_lookup(rtx_def*, machine_mode, int, machine_mode) ()
#1  0x081e7034 in ?? ()
#2  0x08590da2 in ?? ()
#3  0x085a8680 in ?? ()
#4  0x08189983 in find_base_term(rtx_def*) ()
#5  0x08189a28 in find_base_term(rtx_def*) ()
#6  0x08189b69 in find_base_term(rtx_def*) ()
#7  0x0818b3e8 in ?? ()
#8  0x081e7820 in ?? ()
#9  0x081e88f7 in ?? ()
#10 0x081e9183 in cselib_process_insn(rtx_def*) ()
#11 0x0856c723 in ?? ()
#12 0x0857323c in variable_tracking_main() ()
#13 0x0836e2bc in execute_one_pass(opt_pass*) ()
#14 0x0836e615 in execute_pass_list(opt_pass*) ()
#15 0x0836e628 in execute_pass_list(opt_pass*) ()
#16 0x0836e628 in execute_pass_list(opt_pass*) ()
#17 0x0844d434 in tree_rest_of_compilation(tree_node*) ()
#18 0x081dd654 in ?? ()
#19 0x081deeb5 in cgraph_optimize() ()
#20 0x081df3ef in cgraph_finalize_compilation_unit() ()
#21 0x081185fc in c_write_global_declarations() ()
#22 0x0840661a in toplev_main(int, char**) ()
#23 0x0810712b in main ()


[Bug ada/53592] ICE on assignment to component of vector_type

2012-06-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53592

--- Comment #4 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-06-15 
10:46:16 UTC ---
Author: ebotcazou
Date: Fri Jun 15 10:46:12 2012
New Revision: 188654

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188654
Log:
PR ada/53592
* gcc-interface/gigi.h (maybe_vector_array): Make static inline.
* gcc-interface/utils.c (maybe_vector_array): Delete.
* gcc-interface/trans.c (gnat_to_gnu) N_Indexed_Component: Mark the
array object as addressable if it has vector type and is on the LHS.

Added:
branches/gcc-4_7-branch/gcc/testsuite/gnat.dg/vect8.adb
  - copied unchanged from r188653, trunk/gcc/testsuite/gnat.dg/vect8.adb
branches/gcc-4_7-branch/gcc/testsuite/gnat.dg/vect8.ads
  - copied unchanged from r188653, trunk/gcc/testsuite/gnat.dg/vect8.ads
Modified:
branches/gcc-4_7-branch/gcc/ada/ChangeLog
branches/gcc-4_7-branch/gcc/ada/gcc-interface/gigi.h
branches/gcc-4_7-branch/gcc/ada/gcc-interface/trans.c
branches/gcc-4_7-branch/gcc/ada/gcc-interface/utils.c
branches/gcc-4_7-branch/gcc/testsuite/ChangeLog


[Bug ada/53592] ICE on assignment to component of vector_type

2012-06-15 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53592

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.2

--- Comment #5 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-06-15 
10:51:13 UTC ---
.


[Bug tree-optimization/51581] Integer division by constant is not vectorized

2012-06-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51581

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-15 
11:07:54 UTC ---
Author: jakub
Date: Fri Jun 15 11:07:47 2012
New Revision: 188656

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188656
Log:
PR tree-optimization/51581
* expr.h (choose_multiplier): New prototype.
* expmed.c (choose_multiplier): No longer static.
Change multiplier_ptr from rtx * to UHWI *.
(expand_divmod): Adjust callers.
* tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern):
Renamed to...
(vect_recog_divmod_pattern): ... this.  Pass bb_vinfo as last
argument to new_stmt_vec_info.  Attempt to optimize also divisions
by non-pow2 constants if integer vector division isn't supported.
* tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
don't look at pattern stmts and sequences.

* gcc.c-torture/execute/pr51581-1.c: New test.
* gcc.c-torture/execute/pr51581-2.c: New test.
* gcc.dg/vect/pr51581-1.c: New test.
* gcc.dg/vect/pr51581-2.c: New test.
* gcc.dg/vect/pr51581-3.c: New test.
* gcc.target/i386/avx-pr51581-1.c: New test.
* gcc.target/i386/avx-pr51581-2.c: New test.
* gcc.target/i386/avx2-pr51581-1.c: New test.
* gcc.target/i386/avx2-pr51581-2.c: New test.
* gcc.dg/vect/slp-26.c (main1): Divide by 0x8031 instead of 3.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr51581-1.c
trunk/gcc/testsuite/gcc.c-torture/execute/pr51581-2.c
trunk/gcc/testsuite/gcc.dg/vect/pr51581-1.c
trunk/gcc/testsuite/gcc.dg/vect/pr51581-2.c
trunk/gcc/testsuite/gcc.dg/vect/pr51581-3.c
trunk/gcc/testsuite/gcc.target/i386/avx-pr51581-1.c
trunk/gcc/testsuite/gcc.target/i386/avx-pr51581-2.c
trunk/gcc/testsuite/gcc.target/i386/avx2-pr51581-1.c
trunk/gcc/testsuite/gcc.target/i386/avx2-pr51581-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/expmed.c
trunk/gcc/expr.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/vect/slp-26.c
trunk/gcc/tree-vect-patterns.c
trunk/gcc/tree-vect-stmts.c


[Bug tree-optimization/51581] Integer division by constant is not vectorized

2012-06-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51581

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.8.0

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-15 
11:09:11 UTC ---
Fixed for 4.8+.


[Bug rtl-optimization/53589] [4.7/4.8 Regression] ICE in maybe_record_trace_start with asm goto

2012-06-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53589

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-15 
11:10:45 UTC ---
Fixed.


[Bug c/53580] Internal Segmentation fault in nested omp parallel, omp parallel for and omp parallel for reduction Directives

2012-06-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53580

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-15 
11:12:27 UTC ---
FIxed for 4.7+, not backporting further, as this is ice-on-invalid only.


[Bug c++/53683] New: cout doesn't support std::u16string

2012-06-15 Thread rui.maciel at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53683

 Bug #: 53683
   Summary: cout doesn't support std::u16string
Classification: Unclassified
   Product: gcc
   Version: 4.6.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: rui.mac...@gmail.com


Consider the following test program:

code
#include iostream
#include string


int main(void)
{
std::u16string test;

std::cout  test  std::endl;

return 0;
}
/code

When compiling this code with g++ 4.6.3, with the flags -std=c++0x -Wall
-pedantic, the following error message is displayed:

message
main.c++: In function ‘int main()’:
main.c++:9:15: error: no match for ‘operator’ in ‘std::cout  test’
main.c++:9:15: note: candidates are:
/usr/include/c++/4.6/ostream:110:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT,
_Traits::operator(std::basic_ostream_CharT, _Traits::__ostream_type
(*)(std::basic_ostream_CharT, _Traits::__ostream_type)) [with _CharT = char,
_Traits = std::char_traitschar, std::basic_ostream_CharT,
_Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:110:7: note:   no known conversion for argument 1
from ‘std::u16string {aka std::basic_stringchar16_t}’ to
‘std::basic_ostreamchar::__ostream_type
(*)(std::basic_ostreamchar::__ostream_type) {aka std::basic_ostreamchar
(*)(std::basic_ostreamchar)}’
/usr/include/c++/4.6/ostream:119:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT,
_Traits::operator(std::basic_ostream_CharT, _Traits::__ios_type
(*)(std::basic_ostream_CharT, _Traits::__ios_type)) [with _CharT = char,
_Traits = std::char_traitschar, std::basic_ostream_CharT,
_Traits::__ostream_type = std::basic_ostreamchar, std::basic_ostream_CharT,
_Traits::__ios_type = std::basic_ioschar]
/usr/include/c++/4.6/ostream:119:7: note:   no known conversion for argument 1
from ‘std::u16string {aka std::basic_stringchar16_t}’ to
‘std::basic_ostreamchar::__ios_type
(*)(std::basic_ostreamchar::__ios_type) {aka std::basic_ioschar
(*)(std::basic_ioschar)}’
/usr/include/c++/4.6/ostream:129:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT,
_Traits::operator(std::ios_base (*)(std::ios_base)) [with _CharT = char,
_Traits = std::char_traitschar, std::basic_ostream_CharT,
_Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:129:7: note:   no known conversion for argument 1
from ‘std::u16string {aka std::basic_stringchar16_t}’ to ‘std::ios_base
(*)(std::ios_base)’
/usr/include/c++/4.6/ostream:167:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT, _Traits::operator(long
int) [with _CharT = char, _Traits = std::char_traitschar,
std::basic_ostream_CharT, _Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:167:7: note:   no known conversion for argument 1
from ‘std::u16string {aka std::basic_stringchar16_t}’ to ‘long int’
/usr/include/c++/4.6/ostream:171:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT, _Traits::operator(long
unsigned int) [with _CharT = char, _Traits = std::char_traitschar,
std::basic_ostream_CharT, _Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:171:7: note:   no known conversion for argument 1
from ‘std::u16string {aka std::basic_stringchar16_t}’ to ‘long unsigned int’
/usr/include/c++/4.6/ostream:175:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT, _Traits::operator(bool)
[with _CharT = char, _Traits = std::char_traitschar,
std::basic_ostream_CharT, _Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:175:7: note:   no known conversion for argument 1
from ‘std::u16string {aka std::basic_stringchar16_t}’ to ‘bool’
/usr/include/c++/4.6/bits/ostream.tcc:93:5: note: std::basic_ostream_CharT,
_Traits std::basic_ostream_CharT, _Traits::operator(short int) [with
_CharT = char, _Traits = std::char_traitschar]
/usr/include/c++/4.6/bits/ostream.tcc:93:5: note:   no known conversion for
argument 1 from ‘std::u16string {aka std::basic_stringchar16_t}’ to ‘short
int’
/usr/include/c++/4.6/ostream:182:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT, _Traits::operator(short
unsigned int) [with _CharT = char, _Traits = std::char_traitschar,
std::basic_ostream_CharT, _Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:182:7: note:   no known conversion for argument 1
from ‘std::u16string {aka std::basic_stringchar16_t}’ to ‘short unsigned int’
/usr/include/c++/4.6/bits/ostream.tcc:107:5: note: std::basic_ostream_CharT,
_Traits std::basic_ostream_CharT, _Traits::operator(int) [with _CharT =
char, _Traits = std::char_traitschar]
/usr/include/c++/4.6/bits/ostream.tcc:107:5: note:   no 

[Bug target/53682] [4.7/4.8 Regression] ICE in cselib_lookup (SEGV) on i586-linux-gnu

2012-06-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53682

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-06-15
 CC||aoliva at gcc dot gnu.org,
   ||jakub at gcc dot gnu.org
   Target Milestone|--- |4.7.2
 Ever Confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-15 
11:41:37 UTC ---
Probably started with http://gcc.gnu.org/viewcvs?root=gccview=revrev=182760


[Bug libstdc++/53683] cout doesn't support std::u16string

2012-06-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53683

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

  Component|c++ |libstdc++

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-15 
12:00:15 UTC ---
(In reply to comment #0)
 If, in the test program, std::u16string is replaced with std::u32string, the
 program is successfully compiled.

That's surprising - it shouldn't work (and doesn't with G++ 4.7)

 It would be nice if std::cout also supported std::u16string objects.

std::cout is for char

You could use std::wstring_convert to convert a std::u16string to std::string
for output (but GCC doesn't have wsring_convert yet, I plan to work on it next
week.)


[Bug target/53682] [4.7/4.8 Regression] ICE in cselib_lookup (SEGV) on i586-linux-gnu

2012-06-15 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53682

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-15 
12:00:45 UTC ---
Possible the second two calls of promote_debug_loc should be replaced by a loop
over the locs, looking for the right l-loc that -g0 would have created in that
case.  Anyway, it needs to be debugged how exactly -g0 vs. -g behaves in these
cases.


[Bug ada/53684] New: Cannot raise custom exceptions in configurable runtime mode

2012-06-15 Thread laguest at archeia dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53684

 Bug #: 53684
   Summary: Cannot raise custom exceptions in configurable runtime
mode
Classification: Unclassified
   Product: gcc
   Version: 4.6.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: lagu...@archeia.com


According to the HIE docs,
(http://docs.adacore.com/gnat-hie-docs/html/gnathie_ug_3.html#SEC8) it states
when using a configurable runtime, exceptions declarations are valid.

In an attempt to build a hello world kernel for i386 using FS GNAT 4.6 on
Debian testing, it fails to build.

Compile the test with:

gnatmake -gnat2005 -g -a -x -gnatg -gnatec=./gnat.adc test.adb --RTS=. -cargs
-m32 -march=i386

Results are:

test.adb:5:04: construct not allowed in configurable run-time mode
test.adb:5:04: file a-except.ads not found
test.adb:5:04: entity Ada.Exceptions.Raise_Exception not available
gnatmake: test.adb compilation error

Expected results:

What is expected is that a-except is not looked for and the exception is caught
using the local handler or redirected to last_chance_handler.

Has been tested with GNAT GPL 2011, same results. Asked a friend with access to
GNAT PRO 7.1, same results again.

My System:

$ uname -a
Linux rogue 3.2.0-2-amd64 #1 SMP Mon May 21 17:45:41 UTC 2012 x86_64 GNU/Linux

$ gnat
GNAT 4.6
Copyright 1996-2010, Free Software Foundation, Inc.

List of available commands

gnat bind   gnatbind
gnat chop   gnatchop
gnat clean  gnatclean
gnat compilegnatmake -f -u -c
gnat check  gnatcheck
gnat elim   gnatelim
gnat find   gnatfind
gnat krunch gnatkr
gnat link   gnatlink
gnat list   gnatls
gnat make   gnatmake
gnat metric gnatmetric
gnat name   gnatname
gnat preprocess gnatprep
gnat pretty gnatpp
gnat stack  gnatstack
gnat stub   gnatstub
gnat xref   gnatxref

All commands except chop, krunch and preprocess accept project file switches
-vPx, -Pprj and -Xnam=val


[Bug libstdc++/53683] cout doesn't support std::u16string

2012-06-15 Thread rui.maciel at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53683

--- Comment #2 from Rui Maciel rui.maciel at gmail dot com 2012-06-15 
13:08:01 UTC ---
(In reply to comment #1)
 (In reply to comment #0)
  If, in the test program, std::u16string is replaced with std::u32string, the
  program is successfully compiled.
 
 That's surprising - it shouldn't work (and doesn't with G++ 4.7)
 
  It would be nice if std::cout also supported std::u16string objects.
 
 std::cout is for char
 
 You could use std::wstring_convert to convert a std::u16string to std::string
 for output (but GCC doesn't have wsring_convert yet, I plan to work on it next
 week.)

You are absolutely right.

I assumed that the definition of std::ostream also included definitions for
operator that supported definitions of basic_stringcharT with a charT other
than char, but it appears my assumptions were completely baseless.

In that case, is it possible to tweak gcc to return a friendlier error message?
 The current one is a bit long and frightening.  For example, is it possible
define an operator that throws a compiler error with any message similar to
basic_ostreamcharT,traits doesn't provide an operator for
basic_stringsome_other_T?  This sort of error message would be a whole lot
easier to digest.


[Bug tree-optimization/53636] SLP may create invalid unaligned memory accesses

2012-06-15 Thread uweigand at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53636

--- Comment #1 from Ulrich Weigand uweigand at gcc dot gnu.org 2012-06-15 
13:30:40 UTC ---
Author: uweigand
Date: Fri Jun 15 13:30:36 2012
New Revision: 188661

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188661
Log:
gcc/
PR tree-optimization/53636
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
stride when doing basic-block vectorization.

gcc/testsuite/
PR tree-optimization/53636
* gcc.target/arm/pr53636.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/arm/pr53636.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-data-refs.c


[Bug c++/52672] internal compiler error: in cxx_eval_indirect_ref, at cp/semantics.c:6766

2012-06-15 Thread nightstrike at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52672

nightstrike nightstrike at gmail dot com changed:

   What|Removed |Added

 CC||nightstrike at gmail dot
   ||com

--- Comment #8 from nightstrike nightstrike at gmail dot com 2012-06-15 
14:04:06 UTC ---
This fails on x86_64-w64-mingw32 with the following excess errors:


/opt/x/gcc/gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C:7:54: warning: cast to
pointer from integer of different size [-Wint-to-pointer-cast]
/opt/x/gcc/gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C:8:64: warning: cast to
pointer from integer of different size [-Wint-to-pointer-cast]
/opt/x/gcc/gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C:8:65: warning: cast to
pointer from integer of different size [-Wint-to-pointer-cast]


[Bug bootstrap/53681] s390 bootstrap failure since 187965

2012-06-15 Thread matz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681

Michael Matz matz at gcc dot gnu.org changed:

   What|Removed |Added

 CC||matz at gcc dot gnu.org

--- Comment #4 from Michael Matz matz at gcc dot gnu.org 2012-06-15 14:21:05 
UTC ---
I don't see how r187965 could cause this, but I do see the problem.
mark_sym_for_renaming (called via the s390 va_arg_expr expander) is called
during, well, gimplification from GENERIC.  At that point SSA isn't
initialized yet, so cfun-gimple_df is still NULL, and so SYMS_TO_RENAME
gives a segfault.

You either have to guard the call to mark_sym_for_renaming with
gimple_in_ssa_p(), or get rid of the call alltogether.  I don't see how
new va_arg expressions would be generated during SSA optimizers, so the latter
solution would be safe.  No other backend calls mark_sym_for_renaming either,
so just remove it.


[Bug fortran/53685] New: surprising warns about transfer with explicit character range

2012-06-15 Thread ajmay81 at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53685

 Bug #: 53685
   Summary: surprising warns about transfer with explicit
character range
Classification: Unclassified
   Product: gcc
   Version: 4.7.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ajma...@googlemail.com


Fortran code:

  subroutine test()
  implicit none
  character(len=4) :: record_type
  integer  :: i
  i=transfer(record_type,i) ! no warning
  i=transfer(record_type(1:4),i) ! warning
  return
  end

gfortran -c -Wsurprising test.f
test.f:6.17:

  i=transfer(record_type(1:4),i) ! warning  
 1
Warning: Intrinsic TRANSFER at (1) has partly undefined result: source size 0 
result size 4

When the string length is explicitly given the compiler thinks it is length 0,
even though it is the same length as the previous instance.

Seen with 4.7.1 built from source.


[Bug libstdc++/53683] cout doesn't support std::u16string

2012-06-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53683

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-15 
14:39:32 UTC ---
I don't know where you got that error message, I get a much simpler one.

Trunk shows:

u.cc: In function 'int main()':
u.cc:8:18: error: cannot bind 'std::ostream {aka std::basic_ostreamchar}'
lvalue to 'std::basic_ostreamchar'
 std::cout  test  std::endl;
  ^
In file included from /home/jwakely/gcc/4.8/include/c++/4.8.0/iostream:40:0,
 from u.cc:1:
/home/jwakely/gcc/4.8/include/c++/4.8.0/ostream:604:5: error:   initializing
argument 1 of 'std::basic_ostream_CharT, _Traits
std::operator(std::basic_ostream_CharT, _Traits, const _Tp) [with _CharT
= char; _Traits = std::char_traitschar; _Tp = std::basic_stringchar16_t]'
 operator(basic_ostream_CharT, _Traits __os, const _Tp __x)
 ^

4.6 is similar but without the caret diagnostics and with a longer path to the
header.

That error isn't very helpful really, but is because the only match is the
catch all template for writing to rvalue streams, which can't be used because
std::cout is an lvalue:

  templatetypename _CharT, typename _Traits, typename _Tp
inline basic_ostream_CharT, _Traits
operator(basic_ostream_CharT, _Traits __os, const _Tp __x)

But it's a lot better than the error you pasted, which I don't recognise.

I'll look into trying to add some constraints to the templates to improve
diagnostics.


[Bug middle-end/53590] compiler fails to generate SIMD instruction for FP division

2012-06-15 Thread georggcc at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53590

--- Comment #11 from Georg georggcc at googlemail dot com 2012-06-15 14:54:21 
UTC ---
(In reply to comment #10)
 Fixed on the mainline.

Perfect result when run with -fdelete-dead-exceptions, or when
run without the switch (i.e., switches as before).

Adding -fno-delete-dead-exceptions,  I see the old (expected?)
redundant ..., divsd, movapd, divpd, divsd, movapd,  ... sequence,
though. Just mentioning.


[Bug middle-end/38474] slow compilation at -O0 due to expand's temp slot goo

2012-06-15 Thread matz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38474

--- Comment #58 from Michael Matz matz at gcc dot gnu.org 2012-06-15 14:56:33 
UTC ---
Author: matz
Date: Fri Jun 15 14:56:26 2012
New Revision: 188667

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188667
Log:
PR middle-end/38474
* cfgexpand.c (add_alias_set_conflicts): Remove.
(expand_used_vars): Don't call it.
(aggregate_contains_union_type): Remove.
* function.c (n_temp_slots_in_use): New static data.
(make_slot_available, assign_stack_temp_for_type): Update it.
(init_temp_slots): Zero it.
(remove_unused_temp_slot_addresses): Use it for quicker removal.
(remove_unused_temp_slot_addresses_1): Use htab_clear_slot.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/cfgexpand.c
trunk/gcc/function.c


[Bug tree-optimization/53636] SLP may create invalid unaligned memory accesses

2012-06-15 Thread uweigand at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53636

--- Comment #2 from Ulrich Weigand uweigand at gcc dot gnu.org 2012-06-15 
15:11:51 UTC ---
Now fixed on mainline; still fails on 4.7.

(While the bug is probably latent even earlier, this particular test case does
not crash on 4.6.)


[Bug middle-end/38474] slow compilation at -O0 due to expand's temp slot goo

2012-06-15 Thread matz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38474

--- Comment #59 from Michael Matz matz at gcc dot gnu.org 2012-06-15 15:12:59 
UTC ---
There should be no compile performance problems in expand anymore.
The alias stmt walker as used from IPA remains a problem, though.


[Bug c++/53673] Add magic weak symbol to indicate C++ standard setting (C++03, C++11 etc) to help debug ABI problems

2012-06-15 Thread s_gccbugzilla at nedprod dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53673

--- Comment #3 from Niall Douglas s_gccbugzilla at nedprod dot com 2012-06-15 
15:13:37 UTC ---
(In reply to comment #1)
 There's no point differentiating the gnu variants, they don't have any ABI
 impact.

They don't have any ABI impact that we know of at the present time in this
present generation of GCCs. As a debug aid that's likely to be there from now
on and forever, who's to say about the future. Better to cover all bases now
I'd say, just in case.

 This could (and probably should) be done in the library because the output of
 G++ is ABI compatible, it's only standard library components that are not.

There are no shortage of third party libraries which enable special new stuff
when compiled with GNU additions turned on.

Also, the ISO C++ standard is quite clear that ABI between C++03 and C++11
compiled code is not guaranteed in the case where C++11 libraries/shared
objects are linked into a C++03 compiled program. Indeed, really an error ought
to be thrown if this happens for safety's sake, a warning as a minimum.

Niall


[Bug c++/53673] Add magic weak symbol to indicate C++ standard setting (C++03, C++11 etc) to help debug ABI problems

2012-06-15 Thread s_gccbugzilla at nedprod dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53673

--- Comment #4 from Niall Douglas s_gccbugzilla at nedprod dot com 2012-06-15 
15:23:21 UTC ---
(In reply to comment #2)
 you can use -frecord-gcc-switches to detect mixed objects in linked library.

Indeed, one could grok the .text section this adds, parse the command line and
determine the build settings.

However, this is why that would be a poorer choice:

1. Last time I looked record-gcc-switches only works with ELF outputs.

2. You can't debug prebuilt system provided shared objects as these won't have
been compiled with -frecord-gcc-switches.

3. Parsing an ELF .text section is hard from within programs as compared to
dlsym(dll, __gplusplus_std_cplusplus11)

4. Automated build config tools already have machinery for seeing if some
symbol is exported by some binary object. That lets the proposed system fit
into said existing machinery easily, whereas groking .text sections is
considerably harder. For example, an automated build config might adapt how it
builds itself according to how system provided shared libraries were built.

5. Future GCC command line switches may change. Indeed, one day -std will
default to c++11, not c++98. When that happens your .text section parsing will
break. The proposed system doesn't have that problem and is more futureproof.

Niall


[Bug middle-end/38474] slow compilation at -O0 due to expand's temp slot goo

2012-06-15 Thread Joost.VandeVondele at mat dot ethz.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38474

--- Comment #60 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
2012-06-15 15:26:20 UTC ---
(In reply to comment #59)
 There should be no compile performance problems in expand anymore.
 The alias stmt walker as used from IPA remains a problem, though.

Thanks... expand is now indeed essentially gone from the timing report.

 gfortran -ftime-report -ffree-line-length-512 -g -c testcase.f90

Execution times (seconds)
 phase setup :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.03 ( 0%) wall 
   243 kB ( 0%) ggc
 phase parsing   :   3.57 ( 9%) usr   0.06 ( 7%) sys   3.63 ( 9%) wall 
 47592 kB ( 7%) ggc
 phase cgraph:  36.49 (91%) usr   0.86 (93%) sys  37.34 (91%) wall 
647436 kB (93%) ggc
 phase generate  :  36.50 (91%) usr   0.86 (93%) sys  37.36 (91%) wall 
647838 kB (93%) ggc
 garbage collection  :   1.04 ( 3%) usr   0.00 ( 0%) sys   1.04 ( 3%) wall 
 0 kB ( 0%) ggc
 callgraph construction  :   0.19 ( 0%) usr   0.00 ( 0%) sys   0.19 ( 0%) wall 
 15909 kB ( 2%) ggc
 callgraph optimization  :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall 
   201 kB ( 0%) ggc
 cfg construction:   0.08 ( 0%) usr   0.00 ( 0%) sys   0.08 ( 0%) wall 
 7 kB ( 0%) ggc
 cfg cleanup :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.03 ( 0%) wall 
 0 kB ( 0%) ggc
 CFG verifier:   1.26 ( 3%) usr   0.00 ( 0%) sys   1.25 ( 3%) wall 
 0 kB ( 0%) ggc
 trivially dead code :   0.43 ( 1%) usr   0.00 ( 0%) sys   0.41 ( 1%) wall 
 0 kB ( 0%) ggc
 df scan insns   :   0.98 ( 2%) usr   0.24 (26%) sys   1.24 ( 3%) wall 
11 kB ( 0%) ggc
 df live regs:   0.58 ( 1%) usr   0.01 ( 1%) sys   0.57 ( 1%) wall 
 0 kB ( 0%) ggc
 df reg dead/unused notes:   0.43 ( 1%) usr   0.01 ( 1%) sys   0.45 ( 1%) wall 
 19416 kB ( 3%) ggc
 register information:   0.18 ( 0%) usr   0.00 ( 0%) sys   0.18 ( 0%) wall 
 0 kB ( 0%) ggc
 alias analysis  :   0.15 ( 0%) usr   0.00 ( 0%) sys   0.14 ( 0%) wall 
  8337 kB ( 1%) ggc
 rebuild jump labels :   0.22 ( 1%) usr   0.00 ( 0%) sys   0.21 ( 1%) wall 
 0 kB ( 0%) ggc
 parser (global) :   3.57 ( 9%) usr   0.06 ( 7%) sys   3.63 ( 9%) wall 
 47587 kB ( 7%) ggc
 inline heuristics   :   0.06 ( 0%) usr   0.00 ( 0%) sys   0.08 ( 0%) wall 
54 kB ( 0%) ggc
 tree gimplify   :   0.51 ( 1%) usr   0.01 ( 1%) sys   0.51 ( 1%) wall 
 26304 kB ( 4%) ggc
 tree eh :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall 
39 kB ( 0%) ggc
 tree CFG construction   :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall 
   190 kB ( 0%) ggc
 tree CFG cleanup:   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall 
 0 kB ( 0%) ggc
 tree find ref. vars :   0.04 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall 
  3263 kB ( 0%) ggc
 tree PHI insertion  :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall 
 0 kB ( 0%) ggc
 tree SSA other  :   0.01 ( 0%) usr   0.01 ( 1%) sys   0.02 ( 0%) wall 
18 kB ( 0%) ggc
 tree operand scan   :   0.03 ( 0%) usr   0.03 ( 3%) sys   0.05 ( 0%) wall 
   118 kB ( 0%) ggc
 tree SSA verifier   :   0.10 ( 0%) usr   0.00 ( 0%) sys   0.10 ( 0%) wall 
 0 kB ( 0%) ggc
 tree STMT verifier  :   0.56 ( 1%) usr   0.05 ( 5%) sys   0.63 ( 2%) wall 
 0 kB ( 0%) ggc
 callgraph verifier  :   0.25 ( 1%) usr   0.00 ( 0%) sys   0.27 ( 1%) wall 
 0 kB ( 0%) ggc
 out of ssa  :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall 
 0 kB ( 0%) ggc
 expand vars :   1.02 ( 3%) usr   0.02 ( 2%) sys   1.03 ( 3%) wall 
 10086 kB ( 1%) ggc
 expand  :   2.03 ( 5%) usr   0.12 (13%) sys   2.18 ( 5%) wall 
249774 kB (36%) ggc
 post expand cleanups:   0.14 ( 0%) usr   0.01 ( 1%) sys   0.14 ( 0%) wall 
  1744 kB ( 0%) ggc
 integrated RA   :  10.75 (27%) usr   0.15 (16%) sys  10.93 (27%) wall 
128826 kB (19%) ggc
 reload  :   5.56 (14%) usr   0.16 (17%) sys   5.77 (14%) wall 
123587 kB (18%) ggc
 thread pro-  epilogue  :   2.65 ( 7%) usr   0.00 ( 0%) sys   2.64 ( 6%) wall 
   198 kB ( 0%) ggc
 machine dep reorg   :   0.06 ( 0%) usr   0.00 ( 0%) sys   0.07 ( 0%) wall 
 0 kB ( 0%) ggc
 final   :   3.11 ( 8%) usr   0.04 ( 4%) sys   3.15 ( 8%) wall 
  7227 kB ( 1%) ggc
 symout  :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall 
  4914 kB ( 1%) ggc
 rest of compilation :   2.46 ( 6%) usr   0.00 ( 0%) sys   2.39 ( 6%) wall 
 47578 kB ( 7%) ggc
 unaccounted todo:   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall 
 0 kB ( 0%) ggc
 verify RTL sharing  :   1.49 ( 4%) usr   0.00 ( 0%) sys   1.48 ( 4%) wall 
 0 kB ( 0%) ggc
 TOTAL :  40.09 0.9241.02
695674 kB


[Bug c++/53673] Add magic weak symbol to indicate C++ standard setting (C++03, C++11 etc) to help debug ABI problems

2012-06-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53673

--- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-15 
15:37:34 UTC ---
(In reply to comment #3)
 (In reply to comment #1)
  There's no point differentiating the gnu variants, they don't have any ABI
  impact.
 
 They don't have any ABI impact that we know of at the present time in this
 present generation of GCCs. As a debug aid that's likely to be there from now
 on and forever, who's to say about the future.

The GCC maintainers are to say.

 Better to cover all bases now
 I'd say, just in case.

There's no point adding (and maintaining) yet another feature to handle
hypothetical differences which *by*design* should not happen.

Far more relevant than c++11 vs gnu++11 is -fabi-version=n, which your scheme
doesn't cover.

  This could (and probably should) be done in the library because the output 
  of
  G++ is ABI compatible, it's only standard library components that are not.
 
 There are no shortage of third party libraries which enable special new stuff
 when compiled with GNU additions turned on.

Not GCC's problem, and no different to libraries which enable new things when
-fno-rtti or -fno-exceptions is used

 Also, the ISO C++ standard is quite clear that ABI between C++03 and C++11
 compiled code is not guaranteed in the case where C++11 libraries/shared
 objects are linked into a C++03 compiled program. Indeed, really an error 
 ought
 to be thrown if this happens for safety's sake, a warning as a minimum.

[citation needed]  ;)

The standard says nothing about libraries/shared objects

It's entirely possible to use G++ to build 100% ABI compatible applications
using a mixture of -std=c++98 and -std=c++11 objects, if you don't use the
parts of the standard library that are incompatible.  A mandatory or warning
would cause problems for anyone doing that.


[Bug ada/53686] New: gnatchop -r raises STORAGE_ERROR on all inputs

2012-06-15 Thread georggcc at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53686

 Bug #: 53686
   Summary: gnatchop -r raises STORAGE_ERROR on all inputs
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: georg...@googlemail.com


Given any unit, such as

package Unit is
pragma Pure (Unit);
end Unit;

in file unit.ada, gnatchop fails when run with -r (or -r -w):

$ PATH=${HOME}/mine/bin:/usr/bin:/bin gnatchop -r -v unit.ada
GNATCHOP 4.8.0 20120615 (experimental)
Copyright (C) 1998-2012, Free Software Foundation, Inc.
/home/bauhaus/mine/bin/gcc -c -x ada -gnats -gnatu unit.ada
splitting unit.ada into:

raised STORAGE_ERROR : stack overflow or erroneous memory access
$

${HOME}/mine has an installation of GCC Rev 188651.

An attempt at debugging hints at line 1605 in gnatchop.ada,

Reference : String :=
  pragma Source_Reference (00, 
 Nam.all  );  EOL.Str;

(gdb) ...
Program received signal SIGSEGV, Segmentation fault.
__memcpy_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:1955
1955../sysdeps/x86_64/multiarch/memcpy-ssse3.S: No such file or directory.
(gdb) where
#0  __memcpy_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:1955
#1  0x00451cff in gnatchop.write_source_reference_pragma (info=...,
line=1, file=0x775740, eol=..., success=optimized out) at
/home/bauhaus/src/gcc/trunk/gcc/ada/gnatchop.adb:1605
#2  0x00452efa in gnatchop.write_unit (source=..., num=num@entry=1,
ts_time=ts_time@entry=1339772574, write_bom=optimized out, sourceL=error
reading variable: Unhandled dwarf expression opcode 0xfa)
at /home/bauhaus/src/gcc/trunk/gcc/ada/gnatchop.adb:1740
#3  0x00456f94 in gnatchop.write_chopped_files (input=1) at
/home/bauhaus/src/gcc/trunk/gcc/ada/gnatchop.adb:1475
#4  gnatchop () at /home/bauhaus/src/gcc/trunk/gcc/ada/gnatchop.adb:1861

Linux newnews 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:52:17 UTC 2012
x86_64 x86_64 x86_64 GNU/Linux

$ uname -a
Linux newnews 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:52:17 UTC 2012
x86_64 x86_64 x86_64 GNU/Linux

$ PATH=${HOME}/mine/bin:$PATH gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/bauhaus/mine/libexec/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /home/bauhaus/src/gcc/trunk/configure
--prefix=/home/bauhaus/mine --disable-nls --disable-libstdcxx-pch
--enable-languages=c,ada,c++,fortran LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
Thread model: posix
gcc version 4.8.0 20120615 (experimental) (GCC)


[Bug go/53679] Build failure in libgo

2012-06-15 Thread safety0ff.bugz at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53679

--- Comment #1 from safety0ff.bugz at gmail dot com 2012-06-15 15:52:18 UTC ---
Created attachment 27626
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27626
Allows me to compile it, I do know if there's any value if checking for errors
writing to stdout


[Bug go/53679] Build failure in libgo

2012-06-15 Thread safety0ff.bugz at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53679

safety0ff.bugz at gmail dot com changed:

   What|Removed |Added

  Attachment #27626|Allows me to compile it, I  |Allows me to compile it, I
description|do know if there's any  |do know if there's any
   |value if checking for   |value if checking for
   |errors writing to stdout|errors writing to stderr

--- Comment #1 from safety0ff.bugz at gmail dot com 2012-06-15 15:52:18 UTC ---
Created attachment 27626
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27626
Allows me to compile it, I do know if there's any value if checking for errors
writing to stderr


[Bug fortran/53685] surprising warns about transfer with explicit character range

2012-06-15 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53685

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||diagnostic
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-06-15
 CC||burnus at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2012-06-15 
16:18:36 UTC ---
Confirmed.

The size is determined via target-memory.c's gfc_target_expr_size. There seems
to be two issues:

(a) A minor one that in the second case, the length of record_type is
e-ts-u.cl-length == NULL instead of 4 (as one could be simply calculated).

b) And the missing error handling for gfc_target_expr_size in
gfc_calculate_transfer_sizes: There, the result size is error checked, namely:
  if (result_elt_size == 0)
return FAILURE;
But a similar line for source_size is lacking.


Regarding (a): The question is whether one shouldn't set expr-ts.u.cl-length
to expr-ref-next-...-u.ss.length for substrings. I don't know whether that
messes with the CL cleanup or other issues, but it'd make handling substrings
easier than checking whether there is a last_ref(expr)-u.ss.length.


Patch for the second issue.

--- a/gcc/fortran/check.c
+++ b/gcc/fortran/check.c
@@ -4003,2 +4003,4 @@ gfc_calculate_transfer_sizes (gfc_expr *source, gfc_expr
*mold, gfc_expr *size,
   *source_size = gfc_target_expr_size (source);
+  if (source_size == 0)
+return FAILURE;


[Bug go/53679] Build failure in libgo

2012-06-15 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53679

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-06-15 
16:41:53 UTC ---
Actually this is due to your modifications to gcc to enable fority by default
and glibc's bad idea that write needs to be check for error after each write.


[Bug c++/51033] generic vector subscript and shuffle support was not added to C++

2012-06-15 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51033

--- Comment #27 from Ramana Radhakrishnan ramana at gcc dot gnu.org 
2012-06-15 16:43:44 UTC ---
Author: ramana
Date: Fri Jun 15 16:43:36 2012
New Revision: 188671

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188671
Log:

2012-06-15  Marc Glisse  marc.gli...@inria.fr

PR c++/51033
* c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c.
* c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h.

cp/

2012-06-15  Marc Glisse  marc.gli...@inria.fr

PR c++/51033
* semantics.c (literal_type_p): Handle VECTOR_TYPE.
(potential_constant_expression_1): Handle VEC_PERM_EXPR.
* parser.c (cp_parser_postfix_expression): Handle RID_BUILTIN_SHUFFLE.

c-family
2012-06-15  Marc Glisse  marc.gli...@inria.fr

PR c++/51033
* c-common.h (c_build_vec_perm_expr): Move decl here.
* c-common.c (c_build_vec_perm_expr): Move definition
here.

2012-06-15  Ramana Radhakrishnan  ramana.radhakrish...@linaro.org

PR c++/51033
* c-c++-common/torture/vshuf-16.inc: Move from gcc.c-torture/execute/.
* c-c++-common/torture/vshuf-2.inc: Likewise.
* c-c++-common/torture/vshuf-4.inc: Likewise.
* c-c++-common/torture/vshuf-8.inc: Likewise.
* c-c++-common/torture/vshuf-main.inc: Likewise.
* c-c++-common/torture/vshuf-v16hi.c: Likewise.
* c-c++-common/torture/vshuf-v16qi.c: Likewise.
* c-c++-common/torture/vshuf-v2df.c: Likewise.
* c-c++-common/torture/vshuf-v2di.c: Likewise.
* c-c++-common/torture/vshuf-v2sf.c: Likewise.
* c-c++-common/torture/vshuf-v2si.c: Likewise.
* c-c++-common/torture/vshuf-v4df.c: Likewise.
* c-c++-common/torture/vshuf-v4di.c: Likewise.
* c-c++-common/torture/vshuf-v4hi.c: Likewise.
* c-c++-common/torture/vshuf-v4sf.c: Likewise.
* c-c++-common/torture/vshuf-v4si.c: Likewise.
* c-c++-common/torture/vshuf-v8hi.c: Likewise.
* c-c++-common/torture/vshuf-v8qi.c: Likewise.
* c-c++-common/torture/vshuf-v8si.c: Likewise.





Added:
trunk/gcc/testsuite/c-c++-common/torture/vshuf-16.inc
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-16.inc
trunk/gcc/testsuite/c-c++-common/torture/vshuf-2.inc
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-2.inc
trunk/gcc/testsuite/c-c++-common/torture/vshuf-4.inc
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-4.inc
trunk/gcc/testsuite/c-c++-common/torture/vshuf-8.inc
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-8.inc
trunk/gcc/testsuite/c-c++-common/torture/vshuf-main.inc
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-main.inc
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v16hi.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v16hi.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v16qi.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v16qi.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v2df.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v2df.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v2di.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v2di.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v2sf.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v2sf.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v2si.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v2si.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v4df.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v4df.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v4di.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v4di.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v4hi.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v4hi.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v4sf.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v4sf.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v4si.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v4si.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v8hi.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v8hi.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v8qi.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v8qi.c
trunk/gcc/testsuite/c-c++-common/torture/vshuf-v8si.c
  - copied unchanged from r188659,
trunk/gcc/testsuite/gcc.c-torture/execute/vshuf-v8si.c
Removed:

[Bug c++/53673] Add magic weak symbol to indicate C++ standard setting (C++03, C++11 etc) to help debug ABI problems

2012-06-15 Thread s_gccbugzilla at nedprod dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53673

--- Comment #6 from Niall Douglas s_gccbugzilla at nedprod dot com 2012-06-15 
16:53:01 UTC ---
(In reply to comment #5)
  They don't have any ABI impact that we know of at the present time in this
  present generation of GCCs. As a debug aid that's likely to be there from 
  now
  on and forever, who's to say about the future.
 
 The GCC maintainers are to say.

It's safer to fail safe. And no maintainer is omniscient.

  Better to cover all bases now
  I'd say, just in case.
 
 There's no point adding (and maintaining) yet another feature to handle
 hypothetical differences which *by*design* should not happen.

There's the ideal world and there's the real world. This is a very likely
ongoing real world problem whose fix requires perhaps five lines of new code -
hardly a big new feature requiring umpteen lines of code. I'd write the patch
myself except I'd put those five lines in the wrong place because GCC's code
base is so monolithic.

Technically, you could add it to the top of stddef.h or whatever is a
guaranteed included library header:

#if defined(__cpluscplus) and __cplusplus==201103L
extern C void __gplusplus_std_cplusplus11() __attribute__ ((weak));
#elif defined(__cpluscplus) and __cplusplus==199711L
extern C void __gplusplus_std_cplusplus97() __attribute__ ((weak));
#elif ...
#else
#error Unknown C++ variant, cannot set magic symbol
#endif

... assuming that compiles which I can't test on this laptop.

 Far more relevant than c++11 vs gnu++11 is -fabi-version=n, which your scheme
 doesn't cover.

ABI is a GCC issue :). I'd certainly recommend it for that too. You may need to
bump ABI if needed to solve C++11 and C++03 interop and a way for checking for
that would also be useful.

  There are no shortage of third party libraries which enable special new 
  stuff
  when compiled with GNU additions turned on.
 
 Not GCC's problem, and no different to libraries which enable new things when
 -fno-rtti or -fno-exceptions is used

Look, it's a debug aid, and if GCC offers special extra features then it's
GCC's problem if libraries use them. In the future GCC is going to see lots of
C++11 bugs submitted. You're going to ask the question are you *really* sure
you compiled everything with C++11?. Right now they'll say yes, but they may
well be wrong. This debug aid is as much for your future sanity as anything.

  Also, the ISO C++ standard is quite clear that ABI between C++03 and C++11
  compiled code is not guaranteed in the case where C++11 libraries/shared
  objects are linked into a C++03 compiled program. Indeed, really an error 
  ought
  to be thrown if this happens for safety's sake, a warning as a minimum.
 
 [citation needed]  ;)

:) ... I don't suppose you'd take my word as ISO SC22 convenor for Ireland
would you? ;)

No, it's fair enough, I only know that from watching the discussions on ISO and
I have no idea if it's actually written in the final published standard. It is
however written in Nicolai Josuttis' updated C++11 The C++ standard library
in the chapter on C++11 core language changes. And if you think it through,
there has to be in practice ABI breakage in 03 ABIs because no one could have
anticipated during their design of what 11 would require [1].

[1]: This may not apply to GCC as it revised its ABI quite recently, and I'm
sure its designers took into account likely future 11 requirements.

 The standard says nothing about libraries/shared objects

I know only too well. I have an early draft for shared library implementation
on my desk for WG14. It's too ambitious for WG14 as it explicitly adds interop
for non-C languages.

 It's entirely possible to use G++ to build 100% ABI compatible applications
 using a mixture of -std=c++98 and -std=c++11 objects, if you don't use the
 parts of the standard library that are incompatible.  A mandatory or warning
 would cause problems for anyone doing that.

Sure. Any C++ implementation may choose to go beyond what is needed. However, I
personally can see lots of potential for monsters to lurk there. I think the
proposed debug aid will save a lot of time for a lot of people in the long run,
and for the cost of implementation and almost nil cost of maintenance I'd just
go ahead and implement it if I were ye. Which I'm not, so all I can do is try
to persuade and advocate.

Niall


[Bug fortran/53685] surprising warns about transfer with explicit character range

2012-06-15 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53685

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2012-06-15 
17:02:44 UTC ---
(In reply to comment #1)
 (a) A minor one that in the second case, the length of record_type is
 e-ts-u.cl-length == NULL instead of 4 (as one could be simply 
 calculated).

That should be fixed by the following patch (untested). The question is why
e-ref-type == REF_SUBSTRING was excluded if (and only if) it was the first
reference?

The whole condition plus function call was added 2007-08-31 in the big patch
for PR fortran/31879, PR fortran/31197, PR fortran/31258 and PR fortran/32703:
http://gcc.gnu.org/viewcvs?view=revisionrevision=127939

--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -6325,4 +6325,3 @@ gfc_resolve_expr (gfc_expr *e)

-  if (e-ts.type == BT_CHARACTER  e-ts.u.cl == NULL  e-ref
-  e-ref-type != REF_SUBSTRING)
+  if (e-ts.type == BT_CHARACTER  e-ts.u.cl == NULL  e-ref)
gfc_resolve_substring_charlen (e);


[Bug rtl-optimization/53687] New: _mm_cmpistri generates redundant movslq %ecx,%rcx on x86-64

2012-06-15 Thread jbemmel at zonnet dot nl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53687

 Bug #: 53687
   Summary: _mm_cmpistri generates redundant movslq %ecx,%rcx on
x86-64
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jbem...@zonnet.nl


Compile the following strcmp() implementation with -O5 -march=corei7

#include nmmintrin.h

static inline int __strcmp(const char * cs, const char * ct)
{
// Works for both 32-bit and 64-bit code

// see http://www.strchr.com/strcmp_and_strlen_using_sse_4.2

long diff = cs-ct;
long nextbytes = 16;
ct -= 16;

loop:
__m128i ct16cs = _mm_loadu_si128( (const __m128i *) (ct += nextbytes) );
int offset = _mm_cmpistri( ct16cs, * (const __m128i *) (ct+diff),   
  _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY );
__asm__ __volatile__ goto( ja %l[loop] \n jc %l[not_equal] : : :  
 memory : loop, not_equal );

return 0;

not_equal:
return ct[diff+offset] - ct[offset];
}

GCC generates the following code:
004007c0 strcmp:
  4007c0:48 29 f7 sub%rsi,%rdi
  4007c3:48 83 ee 10  sub$0x10,%rsi
  4007c7:48 83 c6 10  add$0x10,%rsi
  4007cb:f3 0f 6f 06  movdqu (%rsi),%xmm0
  4007cf:66 0f 3a 63 04 3e 18 pcmpistri $0x18,(%rsi,%rdi,1),%xmm0
  4007d6:77 efja 4007c7 strcmp+0x7
  4007d8:72 06jb 4007e0 strcmp+0x20
  4007da:31 c0xor%eax,%eax
  4007dc:c3   retq   
  4007dd:0f 1f 00 nopl   (%rax)
* 4007e0:48 63 c9 movslq %ecx,%rcx
  4007e3:48 01 f7 add%rsi,%rdi
  4007e6:0f be 04 0f  movsbl (%rdi,%rcx,1),%eax
  4007ea:0f be 14 0e  movsbl (%rsi,%rcx,1),%edx
  4007ee:29 d0sub%edx,%eax
  4007f0:c3   retq   
  4007f1:66 66 66 66 66 66 2e data32 data32 data32 data32 data32 nopw   
  4007f8:0f 1f 84 00 00 00 00%cs:0x0(%rax,%rax,1)
  4007ff:00 

The movslq instruction is redundant, because pcmpistri clears the upper bits
of RCX when generating an index (verified using gdb)


[Bug c++/53673] Add magic weak symbol to indicate C++ standard setting (C++03, C++11 etc) to help debug ABI problems

2012-06-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53673

--- Comment #7 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-15 
17:46:51 UTC ---
(In reply to comment #6)
 Technically, you could add it to the top of stddef.h or whatever is a
 guaranteed included library header:

libstdc++'s bits/c++config.h would be the right place and as part of the std
lib the symbol should probably be named __glibcxx_blah

I think you'd also need an actual definition or nothing will be emitted for the
declaration alone:

#if __GXX_WEAK__
#if __cplusplus == 201103L
extern C void __glibcxx_std_cxx11() __attribute__((weak));
extern C void __glibcxx_std_cxx11() { }
#else if __cplusplus == 199711L
extern C void __glibcxx_std_cxx98() __attribute__((weak));
extern C void __glibcxx_std_cxx98() { }
#else
#warning Unknown C++ standard version
#endif
#endif


 No, it's fair enough, I only know that from watching the discussions on ISO 
 and
 I have no idea if it's actually written in the final published standard. It is
 however written in Nicolai Josuttis' updated C++11 The C++ standard library
 in the chapter on C++11 core language changes. And if you think it through,
 there has to be in practice ABI breakage in 03 ABIs because no one could have
 anticipated during their design of what 11 would require [1].
 
 [1]: This may not apply to GCC as it revised its ABI quite recently, and I'm
 sure its designers took into account likely future 11 requirements.

The current G++ ABI is eight years old and (modulo bugs) the same for c++98 and
c++11, see Bug 53646 comment 17

Again, the incompatibilities are in the library not the core language.
Whether that's generally true for other compilers is irrelevant here.


[Bug middle-end/53688] New: [4.8 Regression] 191.fma3d in SPEC CPU 2000 miscompiled

2012-06-15 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53688

 Bug #: 53688
   Summary: [4.8 Regression] 191.fma3d in SPEC CPU 2000
miscompiled
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com
CC: rgue...@gcc.gnu.org


On Linux/x86-64, revision 188429:

http://gcc.gnu.org/ml/gcc-cvs/2012-06/msg00339.html

miscompiles 191.fma3d in SPEC CPU 2000:

gfortran -O2 -ffast-math -fwhole-program -flto=jobserver
-fuse-linker-plugin -DSPEC_CPU2000_LP64 fma3d.o beam_.o include_file_.o
penta_.o segment_set_.o body_force_.o indx_.o periodic_bc_.o
sliding_interface_.o constrained_node_.o layering_.o plate_pair_.o
sliding_node_.o contact_node_.o location_.o platq_.o spot_weld_.o
contact_surface_.o lsold_.o platt_.o spring_.o coord_.o massprop_.o
pressure_bc_.o spring_bc_.o damper_.o material_.o property_.o
state_variables_.o damper_bc_.o mean_stress_.o shared_common_data.o stress_.o
displacement_bc_.o membq_.o qa_record_.o tabulated_function_.o element_set_.o
membt_.o relink_scratch_.o tetra_.o enumerated_sets_.o motion_.o results_.o
tied_bc_.o force_.o nodal_point_mass_.o rigid_body_.o truss_.o force_bc_.o
node_.o rigid_body_mass_.o value_.o gauge1d_.o node_set_.o rigid_wall_bc_.o
velocity_ic_.o gauge2d_.o nonreflecting_bc_.o section_1d_.o gauge3d_.o
nrbc_data_.o section_2d_.o hexah_.o output_.o segment_.o lsold.o damper.o
spring.o material_00.o material_10.o material_11.o material_17.o material_22.o
material_25.o material_32.o material_33.o material_34a.o material_36.o
material_38.o material_dm.o material_sp.o sort.o pdb.o beam.o membq.o membt.o
penta.o tetra.o hexah.o platq.o truss.o platt.o fma1.o getirv.o relink.o
output.o fma2.o partition.o strain.o slide.o -o fma3d

  Running 191.fma3d ref base lto default
*** Miscompare of fma3d.out, see
/export/gnu/import/git/gcc-test-spec-lto/spec/2000/x86_64/spec/benchspec/CFP2000/191.fma3d
/run/0003/fma3d.out.mis


[Bug c/53689] New: [SH] GCC emits an invalid slot instruction for RTE (Return from Exception)

2012-06-15 Thread mrkotfw at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53689

 Bug #: 53689
   Summary: [SH] GCC emits an invalid slot instruction for RTE
(Return from Exception)
Classification: Unclassified
   Product: gcc
   Version: 4.5.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mrko...@gmail.com


Under target (sh-elf) big-endian SuperH-2 (SH7604) (options -m2 -mb
-fno-omit-frame-pointer).

When defining an interrupt handler:
static void __attribute__ ((interrupt_handler))
foo(void)
{
}

GCC 4.5.3 emits the following:

 _foo:
   0:2f e6   mov.lr14,@-r15
   2:6e f3   movr15,r14
   4:6f e3   movr14,r15
   6:00 2b   rte
   8:6e f6   mov.l@r15+,r14



How to generate the interrupt:
int
main(int argc, char *argv[])
{
__asm__ __volatile__ (trapa #32\n
tst #0, r0);

return 0;
}

the TRAPA instruction pushes both the SR and PC register values onto the stack
before jumping the interrupt handler foo().

Upon exiting foo(), with RTE, the delay slot is NOT executed first. Instead,
RTE pops both the SR and PC register off the stack, then the slot instruction
is executed.

The (hack) solution is:


static void __attribute__ ((interrupt_handler))
foo(void)
{
__asm__ __volatile__ (mov.l @r15+, r14\n
rte\n
nop);
}


[Bug middle-end/53688] [4.8 Regression] 191.fma3d in SPEC CPU 2000 miscompiled

2012-06-15 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53688

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

   What|Removed |Added

 CC||areg.melikadamyan at gmail
   ||dot com
   Target Milestone|--- |4.8.0


[Bug c++/52816] [C++11] Access to private members inside decltype in the signature of a member template causes access control error

2012-06-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52816

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||rejects-valid
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-06-15
Summary|Access to private members   |[C++11] Access to private
   |inside decltype in the  |members inside decltype in
   |signature of a member   |the signature of a member
   |template causes access  |template causes access
   |control error   |control error
 Ever Confirmed|0   |1

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-15 
18:43:38 UTC ---
confirmed


[Bug c++/53690] New: \u0000 and \U00000000 are wrong encoded as U+0001.

2012-06-15 Thread kennytm at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53690

 Bug #: 53690
   Summary: \u and \U are wrong encoded as U+0001.
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: kenn...@gmail.com


Tested with gcc 4.7 and 4.5 (via ideone)

~~~

#include cstdint
#include cstdio

int main() {
uint32_t a = U'\U';
uint32_t b = U'\u';
uint32_t c = U'\x00';
uint32_t d = U'\0';

uint16_t e = u'\U';
uint16_t f = u'\u';
uint16_t g = u'\x00';
uint16_t h = u'\0';

printf(%x %x %x %x %x %x %x %x\n, a, b, c, d, e, f, g, h);

return 0;
}

// Compile with:
//
// g++ -std=c++11 x.cpp

~~~

This program prints 1 1 0 0 1 1 0 0, but the expected output should be 0 0 0
0 0 0 0 0.



gcc -v:

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/src/gcc-4.7-20120505/configure --prefix=/usr
--libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/
--enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared
--enable-threads=posix --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch
--enable-libstdcxx-time --enable-gnu-unique-object --enable-linker-build-id
--with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold
--enable-ld=default --enable-plugin --with-plugin-ld=ld.gold
--with-linker-hash-style=gnu --enable-multilib --disable-libssp
--disable-build-with-cxx --disable-build-poststage1-with-cxx
--enable-checking=release --with-fpmath=sse
Thread model: posix
gcc version 4.7.0 20120505 (prerelease) (GCC)


[Bug bootstrap/53675] [4.8 Regression] bootstrap fails on netbsd5.1 due to unsupported dwarf4 info

2012-06-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53675

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-15 
19:43:30 UTC ---
Created attachment 27627
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27627
Build log with new binutils

Using a newer binutils (2.22) the errors about dwarf4 are gone, but the
multiple definition errors remain.

GCC still shouldn't be issuing DWARF4 info when the linker doesn't support it
and --with-dwarf2 is used, but that's not the problem.

Every file that includes mutex and uses std::call_once gets a multiple
definition error for the lambda expression on line 815

../src/c++11/.libs/libc++11convenience.a(future.o): In function `operator()':
/home/jwakely/build/x86_64-unknown-netbsd5.1/libstdc++-v3/include/mutex:815:
multiple definition of `void std::call_oncevoid (std::thread::*)(),
std::reference_wrapperstd::thread (std::once_flag, void
(std::thread::*)(),
std::reference_wrapperstd::thread)::{lambda()#1}::_FUN()'
.libs/compatibility-thread-c++0x.o:/home/jwakely/build/x86_64-unknown-netbsd5.1/libstdc++-v3/include/mutex:815:
first defined here

I'll try to reproduce this on other platforms by using --disable-tls, so that
code path is taken.


[Bug c++/53672] gcc/branches/cilkplus does not like C++ spawn (when optimized)

2012-06-15 Thread bviyer at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53672

--- Comment #4 from bviyer at gcc dot gnu.org 2012-06-15 19:44:04 UTC ---
Author: bviyer
Date: Fri Jun 15 19:43:57 2012
New Revision: 188680

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188680
Log:
This patch fixes bug PR 53672.

2012-06-15  Balaji V. Iyer  balaji.v.i...@intel.com  

* dwarf2out.c (dwarf2out_function_decl): Added a check for spawn helper.



Modified:
branches/cilkplus/gcc/ChangeLog.cilk
branches/cilkplus/gcc/dwarf2out.c


[Bug c++/53672] gcc/branches/cilkplus does not like C++ spawn (when optimized)

2012-06-15 Thread bviyer at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53672

--- Comment #5 from Balaji V. Iyer bviyer at gmail dot com 2012-06-15 
19:46:13 UTC ---
Hello John,
The revision mentioned above should fix this problem.

Thanks,

Balaji V. Iyer.


[Bug fortran/53691] New: ICE in LAPACK 3.4.1 cgbrfsx.f

2012-06-15 Thread foldy at rmki dot kfki.hu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53691

 Bug #: 53691
   Summary: ICE in LAPACK 3.4.1 cgbrfsx.f
Classification: Unclassified
   Product: gcc
   Version: 4.7.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: fo...@rmki.kfki.hu


fl_g77 -c -m64 -mtune=generic -Wall -Wstrict-aliasing=3 -O3
-fomit-frame-pointer -fPIC cgbrfsx.f
cgbrfsx.f:519.23:

REF_TYPE = PARAMS( LA_LINRX_ITREF_I )   
   1
Warning: Possible change of value in conversion from REAL(4) to INTEGER(4) at
(1)
f951: 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.

fl_g77 -v:

Using built-in specs.
COLLECT_GCC=fl_g77
COLLECT_LTO_WRAPPER=/home/devel/libexec/gcc/x86_64-pc-linux-gnu/4.7.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-4.7.1/configure --prefix=/home/devel
--build=x86_64-pc-linux-gnu --enable-languages=c,c++,fortran --enable-long-long
--enable-threads --enable-__cxa_atexit --with-gmp=/home/devel
--with-mpfr=/home/devel --without-ppl --without-cloog --disable-multilib
--disable-nls --program-suffix=-4.7.1
Thread model: posix
gcc version 4.7.1 (GCC)


[Bug debug/53671] [4.8 Regression] Many guality test failures

2012-06-15 Thread aoliva at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53671

Alexandre Oliva aoliva at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2012-06-15
 AssignedTo|unassigned at gcc dot   |aoliva at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #2 from Alexandre Oliva aoliva at gcc dot gnu.org 2012-06-15 
20:20:13 UTC ---
I see the drap and some of the pr36728-1 fails in my test logs.  I don't
understand how I failed to notice them when comparing results; I probably
mistakenly used an already-failing baseline.  I'll look into this, thanks.


[Bug fortran/53692] New: OPTIONAL: Scalarizing over the wrong array

2012-06-15 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53692

 Bug #: 53692
   Summary: OPTIONAL: Scalarizing over the wrong array
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org
CC: mik...@gcc.gnu.org
Blocks: 50981


The following program of Daniel C Chen fails due to invalid OPTIONAL handling:
The scalarizer uses the first array instead of the first array belonging to a
nonoptional argument.

Cf. http://j3-fortran.org/pipermail/j3/2012-June/005356.html

See also: 12.5.2.12p3(6), 
  An optional dummy argument that is not present is subject to the 
   following restrictions.
   ...
  (6) If it is an array, it shall not be supplied as an actual argument to 
   an elemental procedure unless an array of the same rank is supplied as an 
   actual argument corresponding to a nonoptional dummy argument of that 
   elemental procedure.


Untested draft patch. I think one might need to have a fall back if there is no
actual argument (which is an array) belonging to a nonoptional dummy. In that
case (cf. above) one can assume that the first array in the list has to be
present.

--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -4356,3 +4356,4 @@ set_loop_bounds (gfc_loopinfo *loop)
  || ss_type == GFC_SS_TEMP
- || ss_type == GFC_SS_REFERENCE)
+ || ss_type == GFC_SS_REFERENCE
+ || ss-info-can_be_null_ref)
continue;



Program main
  implicit none
  integer :: arr(2)

  arr = [ 1, 2 ]
  call sub1(arg2=arr)
contains
   subroutine sub1(arg1,arg2)
  integer, optional :: arg1(:)
  integer :: arg2(:)
  print *,fun1 (arg1, arg2)
  if (size (fun1 (arg1, arg2)) /= 2) call abort()
  if (any (fun1 (arg1, arg2) /= [1,2])) call abort()
   end subroutine

   elemental function fun1(arg1,arg2)
  integer,intent(in), optional :: arg1
  integer,intent(in)  :: arg2
  integer :: fun1
  fun1 = arg2
   end function
end program


[Bug c++/53690] [C++11] \u0000 and \U00000000 are wrongly encoded as U+0001.

2012-06-15 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53690

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-06-15
Version|unknown |4.8.0
Summary|\u and \U are   |[C++11] \u and
   |wrongly encoded as U+0001.  |\U are wrongly
   ||encoded as U+0001.
 Ever Confirmed|0   |1
  Known to fail||4.6.3, 4.7.1, 4.8.0

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-15 
20:48:07 UTC ---
confirmed


[Bug fortran/53691] [4.7/4.8 Regression] ICE in LAPACK 3.4.1 cgbrfsx.f

2012-06-15 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53691

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-06-15
Summary|ICE in LAPACK 3.4.1 |[4.7/4.8 Regression] ICE in
   |cgbrfsx.f   |LAPACK 3.4.1 cgbrfsx.f
 Ever Confirmed|0   |1

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-06-15 
20:50:56 UTC ---
Confirmed with only -Wall.
r176696 is OK,
r177649 gives the segmentation fault.

The backtrace for trunk is


#0  gfc_calculate_transfer_sizes (source=0x142275aa0, mold=0x142276350,
size=0x142276110, source_size=0x7fff5fbfce80, result_size=0x7fff5fbfce88, 
result_length_p=0x0) at /opt/mp/include/gmp.h:1745
#1  0x0001fa59 in gfc_check_transfer (source=0x142275aa0,
mold=0x142276350, size=0x142276110) at ../../work/gcc/fortran/check.c:4070
#2  0x00010003a405 in check_specific (specific=0x142829e28,
expr=0x1422761d0, error_flag=0) at ../../work/gcc/fortran/intrinsic.c:3916
#3  0x000100046f67 in gfc_intrinsic_func_interface (expr=0x1422761d0,
error_flag=0) at ../../work/gcc/fortran/intrinsic.c:4132
#4  0x0001000863fa in gfc_resolve_expr (e=value optimized out) at
../../work/gcc/fortran/resolve.c:2335
#5  0x000100086d39 in resolve_actual_arglist (arg=value optimized out,
ptype=value optimized out, no_formal_args=value optimized out)
at ../../work/gcc/fortran/resolve.c:1774
#6  0x0001000874e3 in resolve_call (c=value optimized out) at
../../work/gcc/fortran/resolve.c:3691
#7  0x00010008d66e in resolve_code (code=value optimized out, ns=value
optimized out) at ../../work/gcc/fortran/resolve.c:9533
#8  0x00010008d1ec in gfc_resolve_blocks (b=value optimized out,
ns=value optimized out) at ../../work/gcc/fortran/resolve.c:9103
#9  0x00010008d366 in resolve_code (code=value optimized out, ns=value
optimized out) at ../../work/gcc/fortran/resolve.c:9372
#10 0x00010008d1ec in gfc_resolve_blocks (b=value optimized out,
ns=value optimized out) at ../../work/gcc/fortran/resolve.c:9103
#11 0x00010008d366 in resolve_code (code=value optimized out, ns=value
optimized out) at ../../work/gcc/fortran/resolve.c:9372
#12 0x00010008fc84 in resolve_codes (ns=value optimized out) at
../../work/gcc/fortran/resolve.c:14044
#13 0x00010007f868 in gfc_resolve (ns=value optimized out) at
../../work/gcc/fortran/resolve.c:14071
#14 0x00010007514b in gfc_parse_file () at
../../work/gcc/fortran/parse.c:4387
#15 0x0001000b4216 in gfc_be_parse_file () at
../../work/gcc/fortran/f95-lang.c:191
#16 0x00010072ada1 in toplev_main (argc=3, argv=0x7fff5fbfd750) at
../../work/gcc/toplev.c:550
#17 0x000118c4 in start ()


[Bug rtl-optimization/53533] [4.7/4.8 regression] vectorization causes loop unrolling test slowdown as measured by Adobe's C++Benchmark

2012-06-15 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53533

--- Comment #18 from Richard Henderson rth at gcc dot gnu.org 2012-06-15 
21:04:49 UTC ---
See comments in http://gcc.gnu.org/ml/gcc-patches/2012-06/msg01081.html

It's not the vectorization costing, as previously suggested.


[Bug fortran/53691] [4.7/4.8 Regression] ICE in LAPACK 3.4.1 cgbrfsx.f

2012-06-15 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53691

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-06-15 
21:23:42 UTC ---
Reduced test case

   SUBROUTINE CGBRFSX(N, RWORK)
   INTEGER N
   REAL RWORK(*)
   REAL ZERO
   PARAMETER (ZERO = 0.0E+0)
   call foo(TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N))
   end

It yields a segmentation fault when compiled with -Wsurprising.


[Bug c++/53565] [4.8 Regression] FAIL: libgomp.c++/for-7.C

2012-06-15 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53565

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 CC||jakub at redhat dot com

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-06-15 
21:56:49 UTC ---
This is indeed caused/exposed by

http://gcc.gnu.org/viewcvs?view=revisionsortby=daterevision=188116


[Bug go/53679] Build failure in libgo

2012-06-15 Thread allan at archlinux dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53679

--- Comment #3 from Allan McRae allan at archlinux dot org 2012-06-15 
22:36:54 UTC ---
Just to be clear, I have not modified the compiler to enable fortify by
default, but it is in my CFLAGS...

As this is the only place that glibc's decision to enforce a check on the
return value of write causes the build to fail with these CFLAGS, it would be
nice to include the posted work-around, or equivalently: 

- runtime_write(2, v, n)
+ if(runtime_write(2, v, n)) {}


[Bug c++/53693] New: [4.7 regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1438

2012-06-15 Thread bearoso at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53693

 Bug #: 53693
   Summary: [4.7 regression] ICE in
vect_get_vec_def_for_stmt_copy, at
tree-vect-stmts.c:1438
Classification: Unclassified
   Product: gcc
   Version: 4.7.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bear...@gmail.com


Created attachment 27628
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27628
Code that generates ICE

With 4.7.0 and up I'm now getting an ICE when building this bit of code with
-O3 or -ftree-vectorize and the C++ compiler:

$ g++ -O1 -ftree-vectorize ice.cxx -o ice
ice.cxx: In function 'void filter_scanlines(void*, int, void*, int, int, int)':
ice.cxx:2:1: internal compiler error: in vect_get_vec_def_for_stmt_copy, at
tree-vect-stmts.c:1438