[Bug tree-optimization/66652] try_transform_to_exit_first_loop_alt generates incorrect loop

2015-06-30 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66652

vries at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |vries at gcc dot gnu.org

--- Comment #6 from vries at gcc dot gnu.org ---
Patch with test-case committed to trunk, marking resolved-fixed.


[Bug c++/66701] New: __cxxabiv1::__cxa_pure_virtual - can it take an argument of the pointer to the function that was called, please?

2015-06-30 Thread jmcguiness at liquidcapital dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66701

Bug ID: 66701
   Summary: __cxxabiv1::__cxa_pure_virtual - can it take an
argument of the pointer to the function that was
called, please?
   Product: gcc
   Version: 4.8.4
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jmcguiness at liquidcapital dot com
  Target Milestone: ---

I am aware of the ability to modify the handler for the pure virtual function
called error message via something like:

namespace __cxxabiv1 {
extern C void
__cxa_pure_virtual(void) {
// Print a backtrace, etc...
std::terminate();
}
}

It is a great shame that the default, gcc-supplied function declaration does
not take an argument of the function pointer that was called, then the RTTI
information could be output. Note that the error message comes from a pure
virtual base class on which a pure virtual function has been called. Therefore
one would suppose that the was guaranteed to be RTTI information regarding that
function call, if not the enclosing pure virtual base class. So the default
implementation of __cxa_pure_virtual() would be able to call
typeid(ptr_to_mem_fn).name() to provide actual type information regarding the
class and the function that was attempted to be called.

I realise that the declaration could be difficult, because the new argument to
__cxa_pure_virtual(...) would need to be able to cope with both void and
non-void return types, cv-qualifiers, and arbitrary arguments. i.e. it would
need some form of declaration magic. But the code is within the compiler! At
the call site where the canary is being placed, the type of the member function
is explicitly known, so the specific declaration (in particular the
ptr-to-mem-fn argument) of __cxa_pure_virtual() can be generated for that call
site, and therefore typeid(of the ptr-to-mem-fn arg) could be correctly
generated.

If I knew how g++ worked internally, I'd do this change. But I don't, I'm
sorry.

The issue I face is that I have a multi-threaded program that has a race
condition that causes the pure virtual function call error very rarely. The
code-base is very large, so it is very hard (I have tried) to track down where
the bug is. It does not appear in debug builds (-O0) and using my own
implementation of __cxa_pure_virtual() and calling set_terminate with my own
functions that generate backtraces has not created the backtrace I'd hope for.

I know also that the code I am referring to above is buggy, therefore I should
just not write it. True. But surely improving the quality of the error
message with the class name and function name in the pure virtual method
called message would be og much help to the C++ community at large?


[Bug tree-optimization/66678] loop counter not accurately described by vrp

2015-06-30 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66678

--- Comment #2 from vries at gcc dot gnu.org ---
Created attachment 35878
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35878action=edit
tentative patch


[Bug tree-optimization/66652] try_transform_to_exit_first_loop_alt generates incorrect loop

2015-06-30 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66652

--- Comment #5 from vries at gcc dot gnu.org ---
Author: vries
Date: Tue Jun 30 08:35:57 2015
New Revision: 225162

URL: https://gcc.gnu.org/viewcvs?rev=225162root=gccview=rev
Log:
Use max_loop_iterations in transform_to_exit_first_loop_alt

2015-06-30  Tom de Vries  t...@codesourcery.com

PR tree-optimization/66652
* tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
max_loop_iterations to determine if nit + 1 overflows.

* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
using restrict pointers.
(main): Add arguments to calls to f.
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.

* gcc.dg/parloops-exit-first-loop-alt-pr66652.c: New test.
* gcc.dg/parloops-exit-first-loop-alt-3.c (f):  Rewrite using restrict
pointers.
* gcc.dg/parloops-exit-first-loop-alt.c: Same.

Added:
trunk/gcc/testsuite/gcc.dg/parloops-exit-first-loop-alt-pr66652.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/parloops-exit-first-loop-alt-3.c
trunk/gcc/testsuite/gcc.dg/parloops-exit-first-loop-alt.c
trunk/gcc/tree-parloops.c
trunk/libgomp/ChangeLog
trunk/libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c
trunk/libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt.c


[Bug tree-optimization/66678] loop counter not accurately described by vrp

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66678

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to vries from comment #2)
 Created attachment 35878 [details]
 tentative patch

That single-use case is awfully special ... just add an unrelated use
to the function and we no longer optimize again.

The real issue with VRP is that given an assert-expr we have no chance to
record multiple ranges via equivalences because equivalences are still tied
to SSA defs.  The same issue pops up for other cases.

So instead of hacking in single-use special-casing we should rather fix
that deficiency...

A possible different way to represent equivalences is to not tie value-ranges
directly to SSA names (by indexing the array with their SSA_NAME_VERSION) but
instead introduce an indirection and thus allow arbitrary new value-ranges
to be stored.

So instead of

static value_range_t **vr_value;

have

vecvalue_range_t values;
static unsigned *vr_value;

and thus get_value_range doing

   unsigned ver = SSA_NAME_VERSION (var);
   return values[vr_value[ver]];

and make equivalences a bitmap of indexes into 'values' instead of
SSA_NAME_VERSIONs.

Then you can always record both ranges from the assert (thus keep both
the symbolic and a constant range when you now have to decide for one)


[Bug target/64833] [SH]: Error: pcrel too far when compiling imagemagick and graphicsmagick on Debian sh4

2015-06-30 Thread kkojima at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64833

--- Comment #21 from Kazumoto Kojima kkojima at gcc dot gnu.org ---
Author: kkojima
Date: Wed Jul  1 01:02:48 2015
New Revision: 225219

URL: https://gcc.gnu.org/viewcvs?rev=225219root=gccview=rev
Log:
PR target/64833
* [SH] Set length of casesi_worker_1 insn to 8 when flag_pic is set.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/sh/sh.md


[Bug c++/66701] __cxxabiv1::__cxa_pure_virtual - can it take an argument of the pointer to the function that was called, please?

2015-06-30 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66701

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
But this isn't the place to propose changes to the ABI, because it's used by
several different compilers and if G++ started emitting a call to a different
version of __cxa_pure_virtual that would break compatibility with other
compilers using the same ABI.

So this is not something that can be added to GCC unless it is first added to
the ABI.


[Bug c/66618] Failure to diagnose non-constant initializer for static object with -O1

2015-06-30 Thread Keith.S.Thompson at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66618

--- Comment #3 from Keith Thompson Keith.S.Thompson at gmail dot com ---
It would be easier to argue that gcc accepts other forms of constant 
expressions if (a) those other forms were documented and (b) they were
accepted at all optimization levels.

Admittedly the standard doesn't seem to require such documentation (which I
find a little surprising), and you could argue that gcc -O0 and gcc -O1 are
two different implementations.


[Bug c++/66686] Instantiation of dependent template template parameter with non-dependent template rejected

2015-06-30 Thread ppalka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66686

--- Comment #7 from Patrick Palka ppalka at gcc dot gnu.org ---
Author: ppalka
Date: Wed Jul  1 01:07:35 2015
New Revision: 225220

URL: https://gcc.gnu.org/viewcvs?rev=225220root=gccview=rev
Log:
Fix PR c++/66686 (dependent template template substitution)

gcc/cp/ChangeLog:

PR c++/66686
* pt.c (coerce_template_template_parm) [PARM_DECL]: Don't
return 0 if tsubst returns a dependent type.

gcc/testsuite/ChangeLog:

PR c++/66686
* g++.dg/template/pr66686.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/template/pr66686.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


[Bug target/66563] [4.9 Regression] ICE (segmentation fault) on sh4-linux-gnu

2015-06-30 Thread glaubitz at physik dot fu-berlin.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66563

--- Comment #41 from John Paul Adrian Glaubitz glaubitz at physik dot 
fu-berlin.de ---
(In reply to Kazumoto Kojima from comment #40)
 with my 4.9 native compiler built with 4.9 cross compiler for svn
 gcc-4_9-branch.  I hope that miscompilation for mpfr is gone for
 bootstrapped 4.9 compiler and it fixes the original gcc issue too.
 Matthias, Adrian, what about the original error?

I cannot test yet as I have to fix the buildds first. This miscompilation issue
seems to have affected a couple of packages that found their way into the build
roots now and are causing me headaches.

I am waiting for Matthias to upload a new gcc-4.9 snapshot in the following
days while I will use the time to fix the build roots, then have the buildds
build the latest gcc-4.9 package and finally reschedule as many as possible
affected packages for rebuild.

So, please bear with me until I can give some feedback.

Adrian


[Bug target/66703] New: [4.9] gcc.target/i386/readeflags-1.c aborts on -march=i586

2015-06-30 Thread julia.koval at intel dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66703

Bug ID: 66703
   Summary: [4.9] gcc.target/i386/readeflags-1.c aborts on
-march=i586
   Product: gcc
   Version: 4.9.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: julia.koval at intel dot com
  Target Milestone: ---

Reproduce:
$ gcc ../../gcc/testsuite/gcc.target/i386/readeflags-1.c -O0 -m32 -march=i586
-lm
$ ./a.out
Aborted (core dumped)

Carry flag is reset in andl instruction in readeflags_test function.


[Bug middle-end/66702] #pragma omp declare simd uniform and linear issues

2015-06-30 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66702

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Tue Jun 30 12:16:01 2015
New Revision: 225180

URL: https://gcc.gnu.org/viewcvs?rev=225180root=gccview=rev
Log:
PR middle-end/66702
* omp-low.c (simd_clone_adjust): Handle addressable linear
or uniform parameters or non-gimple type uniform parameters.

* testsuite/libgomp.c++/pr66702-1.C: New test.
* testsuite/libgomp.c++/pr66702-2.C: New test.

Added:
branches/gcc-5-branch/libgomp/testsuite/libgomp.c++/pr66702-1.C
branches/gcc-5-branch/libgomp/testsuite/libgomp.c++/pr66702-2.C
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/omp-low.c
branches/gcc-5-branch/libgomp/ChangeLog


[Bug tree-optimization/66704] [6 Regression] ICE in tree-vectorizer at tree-ssanames.c:457

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66704

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Tue Jun 30 12:52:55 2015
New Revision: 225182

URL: https://gcc.gnu.org/viewcvs?rev=225182root=gccview=rev
Log:
2015-06-30  Richard Biener  rguent...@suse.de

PR tree-optimization/66704
* tree-vect-data-refs.c (vect_setup_realignment): Use
make_ssa_name for non-SSA name source.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-vect-data-refs.c


[Bug tree-optimization/66704] [6 Regression] ICE in tree-vectorizer at tree-ssanames.c:457

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66704

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug middle-end/66702] #pragma omp declare simd uniform and linear issues

2015-06-30 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66702

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Tue Jun 30 12:12:42 2015
New Revision: 225179

URL: https://gcc.gnu.org/viewcvs?rev=225179root=gccview=rev
Log:
PR middle-end/66702
* omp-low.c (simd_clone_adjust): Handle addressable linear
or uniform parameters or non-gimple type uniform parameters.

* testsuite/libgomp.c++/pr66702-1.C: New test.
* testsuite/libgomp.c++/pr66702-2.C: New test.

Added:
trunk/libgomp/testsuite/libgomp.c++/pr66702-1.C
trunk/libgomp/testsuite/libgomp.c++/pr66702-2.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/omp-low.c
trunk/libgomp/ChangeLog


[Bug tree-optimization/66704] [6 Regression] ICE in tree-vectorizer at tree-ssanames.c:457

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66704

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Index: gcc/tree-vect-data-refs.c
===
--- gcc/tree-vect-data-refs.c   (revision 225163)
+++ gcc/tree-vect-data-refs.c   (working copy)
@@ -4857,7 +4857,10 @@ vect_setup_realignment (gimple stmt, gim
   ptr = vect_create_data_ref_ptr (stmt, vectype, loop_for_initial_load,
  NULL_TREE, init_addr, NULL, inc,
  true, inv_p);
-  new_temp = copy_ssa_name (ptr);
+  if (TREE_CODE (ptr) == SSA_NAME)
+   new_temp = copy_ssa_name (ptr);
+  else
+   new_temp = make_ssa_name (TREE_TYPE (ptr));
   new_stmt = gimple_build_assign
   (new_temp, BIT_AND_EXPR, ptr,
build_int_cst (TREE_TYPE (ptr),

should fix it.


[Bug tree-optimization/66704] New: [6 Regression] ICE in tree-vectorizer at tree-ssanames.c:457

2015-06-30 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66704

Bug ID: 66704
   Summary: [6 Regression] ICE in tree-vectorizer at
tree-ssanames.c:457
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

Hello.

Starting from r224514, there's a new issue spotted on ppc64le:

./xgcc -B. ../../gcc/testsuite/gcc.target/powerpc/pr60137.c -mcpu=power8 -O3 -c
-mno-vsx

../../gcc/testsuite/gcc.target/powerpc/pr60137.c:13:6: internal compiler error:
tree check: expected ssa_name, have addr_expr in copy_ssa_name_fn, at
tree-ssanames.c:457
 void init_reg_sets_1(void)
  ^
0x4f8b tree_check_failed(tree_node const*, char const*, int, char const*,
...)
../../gcc/tree.c:9379
0x102748ab tree_check(tree_node*, char const*, int, char const*, tree_code)
../../gcc/tree.h:2858
0x11029a4f copy_ssa_name_fn(function*, tree_node*, gimple_statement_base*)
../../gcc/tree-ssanames.c:457
0x116685cf copy_ssa_name
../../gcc/tree-ssanames.h:116
0x11677963 vect_setup_realignment(gimple_statement_base*,
gimple_stmt_iterator*, tree_node**, dr_alignment_support, tree_node*, loop**)
../../gcc/tree-vect-data-refs.c:4854
0x1106dd77 vectorizable_load
../../gcc/tree-vect-stmts.c:6548
0x11071717 vect_transform_stmt(gimple_statement_base*, gimple_stmt_iterator*,
bool*, _slp_tree*, _slp_instance*)
../../gcc/tree-vect-stmts.c:7506
0x1108d0ab vect_transform_loop(_loop_vec_info*)
../../gcc/tree-vect-loop.c:6238
0x110ad3a7 vectorize_loops()
../../gcc/tree-vectorizer.c:495
0x10f2046b execute
../../gcc/tree-ssa-loop.c:289

Problem can reproduced on gcc112.fsffrance.org machine.

Thanks,
Martin


[Bug middle-end/66702] #pragma omp declare simd uniform and linear issues

2015-06-30 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66702

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org
   Target Milestone|--- |5.2

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Fixed for 5.2+.


[Bug ipa/66705] New: [5/6 Regression] section is missing linker error with -flto -fipa-pta

2015-06-30 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66705

Bug ID: 66705
   Summary: [5/6 Regression] section is missing linker error with
-flto -fipa-pta
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ipa
  Assignee: unassigned at gcc dot gnu.org
  Reporter: trippels at gcc dot gnu.org
CC: hubicka at gcc dot gnu.org
  Target Milestone: ---

For example:

markus@x4 ~ % g++ -O2 -flto -fipa-pta -w tramp3d-v4.cpp
lto1: fatal error: /tmp/ccIP6ytn.ltrans0.o: section _ZTVN6Smarts8RunnableE is
missing
compilation terminated.
lto-wrapper: fatal error: /usr/x86_64-pc-linux-gnu/gcc-bin/5.1.1/g++ returned 1
exit status
compilation terminated.
/usr/lib/gcc/x86_64-pc-linux-gnu/5.1.1/../../../../x86_64-pc-linux-gnu/bin/ld:
fatal error: lto-wrapper failed
collect2: error: ld returned 1 exit status

markus@x4 ~ % c++filt _ZTVN6Smarts8RunnableE
vtable for Smarts::Runnable

Reducing...


[Bug tree-optimization/66704] [6 Regression] ICE in tree-vectorizer at tree-ssanames.c:457

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66704

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-06-30
   Target Milestone|--- |6.0
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Mine.  (seems I missed one spot)


[Bug target/66136] AArch64 geniterators.sh relies on GNU sed syntax, causing build failure on FreeBSD and probably Mac

2015-06-30 Thread nsz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66136

--- Comment #14 from nsz at gcc dot gnu.org ---
Author: nsz
Date: Tue Jun 30 10:07:03 2015
New Revision: 225170

URL: https://gcc.gnu.org/viewcvs?rev=225170root=gccview=rev
Log:
Backport of r224031 from mainline

2015-06-29  Szabolcs Nagy  szabolcs.n...@arm.com

Backport from mainline:
2015-06-02  Szabolcs Nagy  szabolcs.n...@arm.com

PR target/66136
* config/aarch64/geniterators.sh: Rewrite in awk.


Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/config/aarch64/geniterators.sh


[Bug middle-end/65686] [5/6 regression] inconsistent warning maybe-uninitialized: warn about 'unsigned', not warn about 'int'

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65686

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug debug/65779] [5/6 Regression] undefined local symbol on powerpc [regression]

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65779

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug debug/65821] [4.9/5/6 regression] incorrect debug line # info for main

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65821

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2
 Status|WAITING |NEW
  Known to work||4.7.2


[Bug ipa/65844] [5/6 Regression] ICE (verify_cgraph_node failed) on i686-linux-gnu

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65844

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||lto
 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2015-06-30
  Component|lto |ipa
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Waiting for a testcase.


[Bug target/65867] [5/6 Regression] bootstrap fails for mingw32 due to missing header in ssp.c

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65867

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
So...?  Would be nice to fix for 5.2.


[Bug middle-end/65874] [5 Regression] bootstrap comparison failure (gcc/ira.o) on ia64-linux-gnu

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65874

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Bootstrap also works for me on the GCC 5 branch.


[Bug target/65931] [5/6 regression] dsymutil assertion failure building libgnat-5.dylib

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65931

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |WAITING

--- Comment #6 from Richard Biener rguenth at gcc dot gnu.org ---
Waiting for apple


[Bug target/65886] [5/6 Regression] Copy reloc in PIE incompatible with DSO created by -Wl,-Bsymbolic

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65886

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug middle-end/66178] [4.9/5/6 Regression] Another label as values ICE in gen_reg_rtx, at emit-rtl.c:1059

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66178

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug c++/66666] ARM wrong copy constructor address on multiple inheritance

2015-06-30 Thread antonio.poggiali at datalogic dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=6

--- Comment #12 from Antonio Poggiali antonio.poggiali at datalogic dot com 
---
Created attachment 35879
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35879action=edit
Temporary patch for gcc 4.9.3

A temporary patch masking the problem on gcc 4.9.3


[Bug ipa/66705] [5/6 Regression] section is missing linker error with -flto -fipa-pta

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66705

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
(gdb) p debug_tree (decl)
 var_decl 0x768d7900 a
type integer_type 0x768d0690 int public SI
size integer_cst 0x768ccdf8 constant 32
unit size integer_cst 0x768cce10 constant 4
align 32 symtab 0 alias set -1 canonical type 0x768d0690 precision
32 min integer_cst 0x768ccdb0 -2147483648 max integer_cst 0x768ccdc8
2147483647
pointer_to_this pointer_type 0x768e77e0
public external SI file t.ii line 5 col 5 size integer_cst 0x768ccdf8
32 unit size integer_cst 0x768cce10 4
align 32 context translation_unit_decl 0x77ff11e0 D.3949 initial
error_mark 0x768ccba0

so it's just a global (in another partition I suppose) ...


[Bug ipa/66705] [5/6 Regression] section is missing linker error with -flto -fipa-pta

2015-06-30 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66705

--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
trippels@gcc75 ~ % cat tramp3d-v4.ii
class A {
public:
  A();
};
int a = 0;
void foo() {
  a = 0;
  A b;
  for (; a;)
;
}

trippels@gcc75 ~ % g++ -r -nostdlib -O2 -flto -flto-partition=max -fipa-pta
tramp3d-v4.ii
lto1: fatal error: /home/trippels/tmp/cccC3PXI.ltrans0.o: section a is missing
compilation terminated.


[Bug ipa/66705] [5/6 Regression] section is missing linker error with -flto -fipa-pta

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66705

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-06-30
   Target Milestone|--- |5.2
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.

Breakpoint 1, fatal_error (loc=0, gmsgid=0x1783549 %s: section %s is missing)
at /space/rguenther/src/svn/gcc-5-branch/gcc/diagnostic.c:1203
1203  va_start (ap, gmsgid);
Missing separate debuginfos, use: zypper install
libgmp10-debuginfo-6.0.0-71.1.x86_64 libisl13-debuginfo-0.14-25.2.x86_64
libmpc3-debuginfo-1.0.2-38.2.x86_64 libmpfr4-debuginfo-3.1.2-3.1.2.x86_64
(gdb) up
#1  0x00fe0387 in varpool_node::get_constructor (this=0x76ac4000)
at /space/rguenther/src/svn/gcc-5-branch/gcc/varpool.c:328
328  name);
(gdb) l
323   data = lto_get_section_data (file_data, LTO_section_function_body,
324name, len);
325   if (!data)
326 fatal_error (input_location, %s: section %s is missing,
327  file_data-file_name,
328  name);

(gdb) up
#2  0x00eacc07 in create_variable_info_for (decl=0x768d7900, 
name=0x1763482 NULL)
at /space/rguenther/src/svn/gcc-5-branch/gcc/tree-ssa-structalias.c:5808
5808  if (vnode-get_constructor ()
(gdb) l
5803  if (!vnode-all_refs_explicit_p ())
5804make_copy_constraint (vi, nonlocal_id);
5805
5806  /* If this is a global variable with an initializer and we
are in
5807 IPA mode generate constraints for it.  */
5808  if (vnode-get_constructor ()
5809   vnode-definition)

so IPA PTA needs to guard -get_constructor () somehow?  That is, it
doesn't return NULL_TREE when it cant' get its hands on it?


[Bug c++/60364] [[noreturn]] specified for second declaration but not first doesn't result in a diagnostic

2015-06-30 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60364

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-06-30
   Assignee|unassigned at gcc dot gnu.org  |paolo.carlini at oracle 
dot com
 Ever confirmed|0   |1

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com ---
Mine.


[Bug tree-optimization/66652] try_transform_to_exit_first_loop_alt generates incorrect loop

2015-06-30 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66652

--- Comment #7 from vries at gcc dot gnu.org ---
Author: vries
Date: Tue Jun 30 09:57:20 2015
New Revision: 225166

URL: https://gcc.gnu.org/viewcvs?rev=225166root=gccview=rev
Log:
Backport transform_to_exit_first_loop_alt-related patches

2015-06-30  Tom de Vries  t...@codesourcery.com

backport from trunk:
2015-06-30  Tom de Vries  t...@codesourcery.com

PR tree-optimization/66652
* tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
max_loop_iterations to determine if nit + 1 overflows.

* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
using restrict pointers.
(main): Add arguments to calls to f.
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.

* gcc.dg/parloops-exit-first-loop-alt-pr66652.c: New test.
* gcc.dg/parloops-exit-first-loop-alt-3.c (f):  Rewrite using restrict
pointers.
* gcc.dg/parloops-exit-first-loop-alt.c: Same.

2015-06-29  Tom de Vries  t...@codesourcery.com

* tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
function structure.

2015-06-23  Tom de Vries  t...@codesourcery.com

* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Use
abort.
* testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c (main): Same.

2015-06-22  Tom de Vries  t...@codesourcery.com

* tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
for cond_stmt.

2015-06-13  Tom de Vries  t...@codesourcery.com

* gcc.dg/parloops-exit-first-loop-alt-4.c: New test.

* testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test.

* testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Add comment.
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Add comment.
(N): Define.
(main): Use N instead of hardcoded constants.

* gcc.dg/parloops-exit-first-loop-alt-2.c: Add comment.
(main): Remove superfluous attributes.
* gcc.dg/parloops-exit-first-loop-alt-3.c: Same.
* gcc.dg/parloops-exit-first-loop-alt.c: Same.

Added:
   
branches/gomp-4_0-branch/gcc/testsuite/gcc.dg/parloops-exit-first-loop-alt-4.c
  - copied, changed from r225165,
branches/gomp-4_0-branch/gcc/testsuite/gcc.dg/parloops-exit-first-loop-alt-3.c
   
branches/gomp-4_0-branch/gcc/testsuite/gcc.dg/parloops-exit-first-loop-alt-pr66652.c
   
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c
  - copied, changed from r225165,
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c
Modified:
branches/gomp-4_0-branch/gcc/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/testsuite/ChangeLog.gomp
   
branches/gomp-4_0-branch/gcc/testsuite/gcc.dg/parloops-exit-first-loop-alt-2.c
   
branches/gomp-4_0-branch/gcc/testsuite/gcc.dg/parloops-exit-first-loop-alt-3.c
   
branches/gomp-4_0-branch/gcc/testsuite/gcc.dg/parloops-exit-first-loop-alt.c
branches/gomp-4_0-branch/gcc/tree-parloops.c
branches/gomp-4_0-branch/libgomp/ChangeLog.gomp
   
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c
   
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c
   
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt.c


[Bug tree-optimization/66642] transform_to_exit_first_loop_alt doesn't use result of low iteration count loop

2015-06-30 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66642

--- Comment #5 from vries at gcc dot gnu.org ---
Author: vries
Date: Tue Jun 30 09:57:40 2015
New Revision: 225167

URL: https://gcc.gnu.org/viewcvs?rev=225167root=gccview=rev
Log:
Add empty loop exit block in transform_to_exit_first_loop_alt

2015-06-30  Tom de Vries  t...@codesourcery.com

PR tree-optimization/66642
* tree-parloops.c (transform_to_exit_first_loop_alt): Update function
header comment.  Rename split_edge variable to edge_at_split.  Split
exit edge to create new loop exit bb.  Insert loop exit phis in new
loop
exit bb.

* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Test low
iteration count case.
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c (init): New
function, factor out of ...
(main): ... here.  Test low iteration count case.

Modified:
branches/gomp-4_0-branch/gcc/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/tree-parloops.c
branches/gomp-4_0-branch/libgomp/ChangeLog.gomp
   
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c
   
branches/gomp-4_0-branch/libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt.c


[Bug libgomp/65742] [5 Regression] Several libgomp.oacc-* failures after r221922.

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65742

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2
 Status|NEW |ASSIGNED
Summary|[5/6 Regression] Several|[5 Regression] Several
   |libgomp.oacc-* failures |libgomp.oacc-* failures
   |after r221922.  |after r221922.

--- Comment #8 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed on trunk - can you please fix the gcc 5 branch as well?


[Bug ipa/65797] [5/6 regression] IPA ICF causes function to be emitted with no debug line info

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65797

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2
  Component|tree-optimization   |ipa
Summary|[5 regression] IPA ICF  |[5/6 regression] IPA ICF
   |causes function to be   |causes function to be
   |emitted with no debug line  |emitted with no debug line
   |info|info

--- Comment #9 from Richard Biener rguenth at gcc dot gnu.org ---
The underlying issue wasn't fixed on trunk just the symptom in libgo.


[Bug middle-end/66432] libgomp.c/appendix-a/a.29.1.c -O2 -g: type mismatch between an SSA_NAME and its symbol

2015-06-30 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66432

--- Comment #4 from vries at gcc dot gnu.org ---
Testing tentative patch


[Bug rtl-optimization/66706] Redundant bitmask instruction on x (n 32)

2015-06-30 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66706

Segher Boessenkool segher at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-06-30
   Assignee|unassigned at gcc dot gnu.org  |segher at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Segher Boessenkool segher at gcc dot gnu.org ---
For some reason when combining the zero_extend with the lshiftrt,
combine writes it as the equivalent and-of-subreg.  Which doesn't
match any existing backend pattern.

Confirmed; mine.


[Bug debug/66653] [6 Regression] ice in gen_type_die_with_usage, at dwarf2out.c:20876

2015-06-30 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66653

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Tue Jun 30 15:40:38 2015
New Revision: 225193

URL: https://gcc.gnu.org/viewcvs?rev=225193root=gccview=rev
Log:
PR debug/66653
* decl2.c (is_late_template_attribute): True for tls_model.

Added:
trunk/gcc/testsuite/g++.dg/tls/tls_model1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl2.c


[Bug rtl-optimization/66552] Missed optimization when shift amount is result of signed modulus

2015-06-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66552

--- Comment #3 from Martin Sebor msebor at gcc dot gnu.org ---
(In reply to Segher Boessenkool from comment #2)

I opened bug 66706.


[Bug debug/66691] [5/6 Regression] ICE on valid code at -O3 with -g enabled in simplify_subreg, at simplify-rtx.c:5744

2015-06-30 Thread vmakarov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66691

--- Comment #5 from Vladimir Makarov vmakarov at gcc dot gnu.org ---
Thanks for reporting this.  I've started work on it.


[Bug rtl-optimization/66706] New: Redundant shift instruction on x (n 32)

2015-06-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66706

Bug ID: 66706
   Summary: Redundant shift instruction on x  (n  32)
   Product: gcc
   Version: 5.1.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: enhancement
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: msebor at gcc dot gnu.org
CC: mpolacek at gcc dot gnu.org, msebor at gcc dot gnu.org,
rv at rasmusvillemoes dot dk, segher at gcc dot gnu.org,
unassigned at gcc dot gnu.org
Depends on: 66552
  Target Milestone: ---
Target: x86, powerpc64

+++ This bug was initially created as a clone of Bug #66552 +++

Compiling the following function with -O2:

unsigned f(unsigned x, int n)
{
return x  (n  32);
}

results in an unnecessary instruction to zero out the already clear high order
bits of register 3 after the shift instruction:

rldicl 4,4,0,59
srw 3,3,4
rldicl 3,3,0,32
blr

Clang emits an optimal sequence:

rlwinm 4, 4, 0, 27, 31
srw 3, 3, 4
blr


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66552
[Bug 66552] Missed optimization when shift amount is result of signed modulus


[Bug debug/66653] [6 Regression] ice in gen_type_die_with_usage, at dwarf2out.c:20876

2015-06-30 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66653

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Tue Jun 30 14:31:36 2015
New Revision: 225192

URL: https://gcc.gnu.org/viewcvs?rev=225192root=gccview=rev
Log:
PR debug/66653
* cp-tree.h (CP_DECL_THREAD_LOCAL_P): New.
(DECL_GNU_TLS_P): Use DECL_LANG_SPECIFIC field.
(SET_DECL_GNU_TLS_P): New.
* call.c (make_temporary_var_for_ref_to_temp): Use
CP_DECL_THREAD_LOCAL_P.
(set_up_extended_ref_temp): Likewise.
* decl.c (duplicate_decls, expand_static_init): Likewise.
(redeclaration_error_message, grokvardecl): Likewise.
(start_decl, register_dtor_fn, grokdeclarator): Likewise.
* decl2.c (get_guard, var_needs_tls_wrapper): Likewise.
(handle_tls_init): Likewise.
* pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
* semantics.c (finish_id_expression): Likewise.
(handle_omp_array_sections_1, finish_omp_clauses): Likewise.
(finish_omp_threadprivate): Likewise.
* tree.c (decl_storage_duration): Likewise.
* cp-gimplify.c (omp_var_to_track): Likewise.
(cp_genericize_r): Check that it matches DECL_THREAD_LOCAL_P.
* lex.c (retrofit_lang_decl): Return if DECL_LANG_SPECIFIC is
already set.

Added:
trunk/gcc/testsuite/g++.dg/debug/dwarf2/tls1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/cp/cp-gimplify.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/lex.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/tree.c


[Bug fortran/66708] New: Possible (minor) improvement on formatted io with format too short

2015-06-30 Thread gerhard.steinmetz.fort...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66708

Bug ID: 66708
   Summary: Possible (minor) improvement on formatted io with
format too short
   Product: gcc
   Version: 5.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gerhard.steinmetz.fort...@t-online.de
  Target Milestone: ---

Formatted read or write of a variable (list) needs a format (fmt)
string longer than 2 characters, because of parentheses ( ) and
at least one character for an edit descriptor (e.g. a, g0, i8).

At least if the fmt string is constant/unchangeable, an error message
could be given at compile time. Otherwise a runtime error occurs.
Here with write, same for read and print.


$ cat z_write_fmt_too_short_2_item.f90
program p
   character(2), parameter :: fmt1 = '()'
   character(2) :: fmt2 = '()'
   integer :: n = 1
 3 format ()
   write (*, fmt1) n
   write (*, fmt2) n
   write (*, '()') n
   write (*, 3) n
end


$ gfortran -g -O0 -Wall -fcheck=all z_write_fmt_too_short_2_item.f90
$ a.out
At line 6 of file z_write_fmt_too_short_2_item.f90 (unit = 6, file = 'stdout')
Fortran runtime error: Insufficient data descriptors in format after reversion


[Bug c++/66686] Instantiation of dependent template template parameter with non-dependent template rejected

2015-06-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66686

Martin Sebor msebor at gcc dot gnu.org changed:

   What|Removed |Added

 CC||msebor at gcc dot gnu.org

--- Comment #1 from Martin Sebor msebor at gcc dot gnu.org ---
The code doesn't look valid to me: Y is not a valid template argument for the
template template parameter C.

Of the compilers I tried GCC, EDG eccp, and IBM XLC++ all reject it (the latter
two with a clear error message confirming the above).  Clang is the only one
that accepts it.


[Bug fortran/66708] Possible (minor) improvement on formatted io with format too short

2015-06-30 Thread gerhard.steinmetz.fort...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66708

Gerhard Steinmetz gerhard.steinmetz.fort...@t-online.de changed:

   What|Removed |Added

   Severity|normal  |enhancement

--- Comment #1 from Gerhard Steinmetz gerhard.steinmetz.fort...@t-online.de 
---
Formatted read or write with no variable list needs a format (fmt)
string longer than one character.
This is checked already -- partly -- but very good, indeed.
Please take a look at the message text.


$ cat z_write_fmt_too_short_1.f90
program p
   character(1), parameter :: fmt1 = '('
   character(1) :: fmt2 = '('
   write (*, fmt1)
   write (*, fmt2)
   write (*, '(')
end


$ gfortran -g -O0 -Wall -fcheck=all z_write_fmt_too_short_1.f90
z_write_fmt_too_short_1.f90:4:14:

write (*, fmt1)
  1
Error: Unexpected end of format string in format string at (1)
z_write_fmt_too_short_1.f90:6:14: Error: Unexpected end of format string in
format string at (1)

---

$ cat z_write_fmt_too_short_0.f90
program p
   character(1), parameter :: fmt1 = '('
   character(1) :: fmt2 = '('
   write (*, fmt1(1:0))
   write (*, fmt2(1:0))
   write (*, '')
end


$ gfortran z_write_fmt_too_short_0.f90
z_write_fmt_too_short_0.f90:4:13:

write (*, fmt1(1:0))
 1
Error: Missing leading left parenthesis in format string at (1)
z_write_fmt_too_short_0.f90:6:13:

write (*, '')
 1
Error: Missing leading left parenthesis in format string at (1)


[Bug libstdc++/66699] Incorrect order of destruction for std::tuple elements

2015-06-30 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66699

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to Antony Polukhin from comment #3)
 std::pair destruction order is
 fully specified, so that order must be used by tuple too.

No, the standard says no such thing.


[Bug c++/66666] ARM wrong copy constructor address on multiple inheritance

2015-06-30 Thread jgreenhalgh at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=6

James Greenhalgh jgreenhalgh at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jgreenhalgh at gcc dot gnu.org

--- Comment #13 from James Greenhalgh jgreenhalgh at gcc dot gnu.org ---
Starting with my own set of silly questions while I try to narrow down what
environments I need to set up...

Your toolchain is arm-none-linux-gnueabi , but you build with -mfloat-abi=hard
- do you have suitable hard-float libraries on the target?

How was the toolchain configured
(arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ -v)?

What userspace is running on the target?


[Bug debug/66691] [5/6 Regression] ICE on valid code at -O3 with -g enabled in simplify_subreg, at simplify-rtx.c:5744

2015-06-30 Thread vmakarov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66691

--- Comment #6 from Vladimir Makarov vmakarov at gcc dot gnu.org ---
Author: vmakarov
Date: Tue Jun 30 17:40:55 2015
New Revision: 225200

URL: https://gcc.gnu.org/viewcvs?rev=225200root=gccview=rev
Log:
2015-06-30  Vladimir Makarov  vmaka...@redhat.com

PR debug/66691
* lra-int.h (lra_substitute_pseudo): Add a parameter.
(lra_substitute_pseudo_within_insn): Ditto.
* lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
of constant.
(lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
to lra_substitute_pseudo.
* lra-lives.c (process_bb_lives): Add an argument to
lra_substitute_pseudo_within_insn call.
* lra-constraints.c (inherit_reload_reg, split_reg): Add an
argument to lra_substitute_pseudo and
lra_substitute_pseudo_within_insn calls.
(remove_inheritance_pseudos, undo_optional_reloads): Ditto.

2015-06-30  Vladimir Makarov  vmaka...@redhat.com

PR debug/66691
* gcc.target/i386/pr66691.c: New.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/lra-constraints.c
trunk/gcc/lra-int.h
trunk/gcc/lra-lives.c
trunk/gcc/lra.c
trunk/gcc/testsuite/ChangeLog


[Bug fortran/66710] New: Unhelpful error message with unbalanced parenthesis

2015-06-30 Thread casey.webster at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66710

Bug ID: 66710
   Summary: Unhelpful error message with unbalanced parenthesis
   Product: gcc
   Version: 5.1.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: casey.webster at gmail dot com
  Target Milestone: ---

A very simple test case:

  real, dimension(1,1) :: A
  b = A(:,iter))
end

whose error is unbalanced parenthesis on line two, fails compilation as it
should, but for a very unhelpful (and wrong) error:

error-msg.f90:2:10:

   b = A(:,iter))
  1
Error: Invalid character in name at (1)

For comparison, ifort emits the error error #5276: Unbalanced parentheses for
the same testcase.


[Bug fortran/66709] New: ICE on formatted io with parameter array specifier fmt

2015-06-30 Thread gerhard.steinmetz.fort...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66709

Bug ID: 66709
   Summary: ICE on formatted io with parameter array specifier fmt
   Product: gcc
   Version: 5.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gerhard.steinmetz.fort...@t-online.de
  Target Milestone: ---

Specifying a character array for fmt is legal fortran.
If declared as parameter, compilation fails :


$ cat z_wr_fmt_ice_1.f90
program p
   character(4), parameter :: fmt(1) = '(i8)'
   integer :: n
   read (*, fmt=fmt) n
   write (*, fmt=fmt) n
end


$ cat z_wr_fmt_ice_2.f90
program p
   character(*), parameter :: fmt(1) = '(i8)'
   integer :: n
   read (*, fmt=fmt) n
   write (*, fmt=fmt) n
end


$ cat z_wr_fmt_ice_5.f90
program p
   character(1), parameter :: fmt(4) = ['(', 'i', '8', ')']
   integer :: n
   read (*, fmt=fmt) n
   write (*, fmt=fmt) n
end


yields (with gfortran 5.1.1 on SUSE Linux 13.2, 64 bit) :
internal compiler error: in gfc_conv_array_constructor_expr, at
fortran/trans-expr.c:6326


[Bug fortran/66707] New: Endless compilation on wrong usage of common

2015-06-30 Thread gerhard.steinmetz.fort...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66707

Bug ID: 66707
   Summary: Endless compilation on wrong usage of common
   Product: gcc
   Version: 5.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gerhard.steinmetz.fort...@t-online.de
  Target Milestone: ---

After printing some correct and helpful error messages,
compilation of the following snippets (wrong code) will not end.
Tested with gfortran 5.1.1, 4.9.0, 4.8.3 (on SUSE Linux 13.2, 64 bit).


$ cat zlctc_1.f90
program p
   c = 1
   common // c
   common // c
end


$ cat zlctc_2.f90
program p
   integer, pointer :: a
   common a, a
   common a
end


$ cat zlctc_3.f90
program p
   integer, pointer :: a
   common a = null()
   common a = null()
end


$ time gfortran zlctc_1.f90
zlctc_1.f90:3.14:

   common // c
  1
Error: Unexpected COMMON statement at (1)
zlctc_1.f90:4.14:

   common // c
  1
Error: Unexpected COMMON statement at (1)

# ^C after a few minutes


[Bug c++/66701] __cxxabiv1::__cxa_pure_virtual - can it take an argument of the pointer to the function that was called, please?

2015-06-30 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66701

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
The function signature is defined by the ABI so we can't change it.

http://mentorembedded.github.io/cxx-abi/abi.html#pure-virtual


[Bug libstdc++/66699] Incorrect order of destruction for std::tuple elements

2015-06-30 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66699

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org ---
And that's not even what similar means anyway.


[Bug fortran/66575] Endless compilation on missing end interface

2015-06-30 Thread gerhard.steinmetz.fort...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66575

--- Comment #3 from Gerhard Steinmetz gerhard.steinmetz.fort...@t-online.de 
---
Playing around, I've found other cases (wrong code with procedure)
causing endless compilation on my environment, e.g.


$ cat zlctp_1.f90
program p
   procedure(g) :: g
   procedure(g) :: g
end


$ cat zlctp_2.f90
program p
   procedure(g) :: g
   procedure(g) !! anything
end


$ time gfortran -c zlctp_2.f90  # with 5.1.1, 4.9.0, 4.8.3
# ^C after a few minutes

real3m46.187s
user0m0.000s
sys 0m0.002s


[Bug libstdc++/66699] Incorrect order of destruction for std::tuple elements

2015-06-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66699

--- Comment #4 from Martin Sebor msebor at gcc dot gnu.org ---
Being described as similar doesn't imply they are identical in every detail. 
std::pair and std::tuple are distinct classes with different requirements on
each.  If you believe the are required to behave identically in this respect
(i.e., have their subobjects defined in the same order) you need to point to
the specific wording that guarantees it.


[Bug fortran/66709] ICE on formatted io with parameter array specifier fmt

2015-06-30 Thread gerhard.steinmetz.fort...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66709

--- Comment #1 from Gerhard Steinmetz gerhard.steinmetz.fort...@t-online.de 
---
Whereas versions without parameter compile and run fine :


$ cat z_wr_fmt_ice_4.f90
program p
   character(4) :: fmt(1) = '(i8)'
   integer :: n
   read (*, fmt=fmt) n
   write (*, fmt=fmt) n
end


$ cat z_wr_fmt_ice_6.f90
program p
   character(1) :: fmt(4) = ['(', 'i', '8', ')']
   integer :: n
   read (*, fmt=fmt) n
   write (*, fmt=fmt) n
end


[Bug c++/66686] Instantiation of dependent template template parameter with non-dependent template rejected

2015-06-30 Thread ppalka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66686

--- Comment #2 from Patrick Palka ppalka at gcc dot gnu.org ---
(In reply to Martin Sebor from comment #1)
 The code doesn't look valid to me: Y is not a valid template argument for
 the template template parameter C.

But once struct X gets instantiated like in the very last line, doesn't it
become a valid template argument?  There, B is set to int, thus the template
parameter C gets the type template int class which is exactly the type of
the template Y.


[Bug rtl-optimization/66665] Increment instruction is not propagated into address operand

2015-06-30 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=5

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-06-30
 Ever confirmed|0   |1

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com ---
It is caused by the combination of -mregparm=3 -mtune=i686.
-mregparm=3 -mtune=generic -O2 gives

f:
.cfi_startproc
movsbl  a+1(%eax), %edx
movsbl  b+1(%eax), %eax
addl%edx, %eax
ret
.cfi_endproc


[Bug debug/66691] [5/6 Regression] ICE on valid code at -O3 with -g enabled in simplify_subreg, at simplify-rtx.c:5744

2015-06-30 Thread vmakarov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66691

--- Comment #7 from Vladimir Makarov vmakarov at gcc dot gnu.org ---
I'll commit the same patch into gcc-5 branch on next week after some testing
the patch on trunk.


[Bug c++/60365] multiple noreturn attribute specifiers in a single declaration doesn't result in a diagnostic

2015-06-30 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60365

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-06-30
   Assignee|unassigned at gcc dot gnu.org  |paolo.carlini at oracle 
dot com
   Target Milestone|--- |6.0
 Ever confirmed|0   |1

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com ---
Mine.


[Bug c/66711] GCC does not correctly restore diagnostic state after pragma GCC diagnostic pop with -Werror

2015-06-30 Thread steffen.muething at iwr dot uni-heidelberg.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66711

--- Comment #1 from Steffen Müthing steffen.muething at iwr dot 
uni-heidelberg.de ---
I just noticed the wrong filename (error.cc) and driver (cc1plus) in the first
two outputs: I compiled those with g++ instead of gcc, but the same problem is
present in the C frontend.

[Bug jit/66628] jit: Provide a way to add arbitrary options to the toplev command line

2015-06-30 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66628

--- Comment #1 from David Malcolm dmalcolm at gcc dot gnu.org ---
Author: dmalcolm
Date: Tue Jun 30 19:27:19 2015
New Revision: 225205

URL: https://gcc.gnu.org/viewcvs?rev=225205root=gccview=rev
Log:
PR jit/66628: add gcc_jit_context_add_command_line_option

gcc/jit/ChangeLog:
PR jit/66628
* docs/cp/topics/contexts.rst (Additional command-line options):
New section.
* docs/topics/compatibility.rst: New file.
* docs/topics/contexts.rst (Additional command-line options): New
section.
* docs/topics/index.rst: Add compatibility.rst.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c (make_fake_args): Add call to
append_command_line_options.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::~context): Free the optnames within
m_command_line_options.
(recording::context::set_bool_option): Likewise.
(recording::context::add_command_line_option): New method.
(recording::context::append_command_line_options): New method.
(recording::context::dump_reproducer_to_file): Add command-line
options.
* jit-recording.h: Within namespace gcc::jit...
(recording::context::add_command_line_option): New method.
(recording::context::append_command_line_options): New method.
(recording::context::m_command_line_options): New field.
* libgccjit++.h (gccjit::context::add_command_line_option): New
method.
* libgccjit.c (gcc_jit_context_add_command_line_option): New API
entrypoint.
* libgccjit.h (gcc_jit_context_add_command_line_option): New API
entrypoint.
(LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option): New
macro.
* libgccjit.map: Put existing symbols within LIBGCCJIT_ABI_0; add
LIBGCCJIT_ABI_1 and gcc_jit_context_add_command_line_option.

gcc/testsuite/ChangeLog:
PR jit/66628
* jit.dg/all-non-failing-tests.h: Add note about
test-extra-options.c.
* jit.dg/test-extra-options.c: New testcase.


Added:
trunk/gcc/jit/docs/topics/compatibility.rst
trunk/gcc/testsuite/jit.dg/test-extra-options.c
Modified:
trunk/gcc/jit/ChangeLog
trunk/gcc/jit/docs/_build/texinfo/libgccjit.texi
trunk/gcc/jit/docs/cp/topics/contexts.rst
trunk/gcc/jit/docs/topics/contexts.rst
trunk/gcc/jit/docs/topics/index.rst
trunk/gcc/jit/jit-playback.c
trunk/gcc/jit/jit-recording.c
trunk/gcc/jit/jit-recording.h
trunk/gcc/jit/libgccjit++.h
trunk/gcc/jit/libgccjit.c
trunk/gcc/jit/libgccjit.h
trunk/gcc/jit/libgccjit.map
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/jit.dg/all-non-failing-tests.h


[Bug c++/66686] Instantiation of dependent template template parameter with non-dependent template rejected

2015-06-30 Thread ppalka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66686

--- Comment #3 from Patrick Palka ppalka at gcc dot gnu.org ---
(In reply to Patrick Palka from comment #2)
 (In reply to Martin Sebor from comment #1)
  The code doesn't look valid to me: Y is not a valid template argument for
  the template template parameter C.
 
 But once struct X gets instantiated like in the very last line, doesn't it
 become a valid template argument?  There, B is set to int, thus the template
 parameter C gets the type template int class which is exactly the type
 of the template Y.

Err, I meant the parameter Z gets the type template int class which is
exactly the type of the template Y. So it seems that early-rejecting this
template definition is too pessimistic because there exist template arguments
that make the instantiated code valid.


[Bug tree-optimization/66713] New: atomic compare_excahnge_strong create spurious store for x86-64 at -O3

2015-06-30 Thread tkoeppe at google dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66713

Bug ID: 66713
   Summary: atomic compare_excahnge_strong create spurious store
for x86-64 at -O3
   Product: gcc
   Version: 4.9.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tkoeppe at google dot com
  Target Milestone: ---

The code here: https://goo.gl/CiV4pl

compares a hand-written CAS with the C++11 atomic one. On Clang, the code comes
out identical. On GCC 4.9.2 and later there is an extra store (movq %rdi,
-8(%rsp)). Should that not be there?


[Bug rtl-optimization/66626] [4.9/5/6 Regression] gcc.dg/torture/stackalign/non-local-goto-5.c segfaults w/ -mregparm=3

2015-06-30 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66626

--- Comment #6 from H.J. Lu hjl.tools at gmail dot com ---
ix86_function_regparm has

 /* We don't want to use regparm(3) for nested functions as
 these use a static chain pointer in the third argument.  */
  if (local_regparm == 3  DECL_STATIC_CHAIN (target-decl))
local_regparm = 2;

  /* Save a register for the split stack.  */
  if (local_regparm == 3  flag_split_stack)
local_regparm = 2;

  /* Each fixed register usage increases register pressure,
 so less registers should be used for argument passing.
 This functionality can be overriden by an explicit
 regparm value.  */
  for (regno = AX_REG; regno = DI_REG; regno++)
if (fixed_regs[regno])
  globals++;

  local_regparm
= globals  local_regparm ? local_regparm - globals : 0;

  if (local_regparm  regparm)
^^^ Shouldn't it be ?
regparm = local_regparm;
}


[Bug middle-end/66685] [6 Regression] conftest.c:16:1: internal compiler error: in as_a, at is-a.h:192

2015-06-30 Thread rsandifo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66685

rsandifo at gcc dot gnu.org rsandifo at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-06-30
   Assignee|unassigned at gcc dot gnu.org  |rsandifo at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #6 from rsandifo at gcc dot gnu.org rsandifo at gcc dot gnu.org 
---
Created attachment 35883
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35883action=edit
Possible fix

Sorry, I missed that this was after r225000.  Does the attached patch fix it?


[Bug jit/66546] No way to disable check for unreachable blocks

2015-06-30 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66546

--- Comment #3 from David Malcolm dmalcolm at gcc dot gnu.org ---
Author: dmalcolm
Date: Tue Jun 30 19:38:12 2015
New Revision: 225206

URL: https://gcc.gnu.org/viewcvs?rev=225206root=gccview=rev
Log:
PR jit/66546: Add gcc_jit_context_set_bool_allow_unreachable_blocks

gcc/jit/ChangeLog:
PR jit/66546
* docs/cp/topics/contexts.rst
(gccjit::context::set_bool_allow_unreachable_blocks): New.
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_2): New.
* docs/topics/contexts.rst (Options): Add notes discussing the
transition from enums to entrypoints for new options.
(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-common.h (gcc::jit::inner_bool_option): New enum.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::context): Handle m_inner_bool_options.
(recording::context::set_inner_bool_option): New.
(inner_bool_option_reproducer_strings): New.
(recording::context::log_all_options): Log the inner bool
options.
(recording::context::log_inner_bool_option): New.
(recording::context::dump_reproducer_to_file): Write initializers
for inner bool options.
(recording::function::validate): Don't check for block
reachability if INNER_BOOL_OPTION_ALLOW_UNREACHABLE_BLOCKS is set.
* jit-recording.h: Within namespace gcc::jit...
(recording::context::set_inner_bool_option): New.
(recording::context::get_inner_bool_option): New.
(recording::context::log_inner_bool_option): New.
(recording::context::m_inner_bool_options): New.
* libgccjit++.h
(gccjit::context::set_bool_allow_unreachable_blocks): New.
* libgccjit.c
(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
* libgccjit.h: Add note about options present in the
initial release of libgccjit.
(gcc_jit_context_set_bool_allow_unreachable_blocks): New API
entrypoint.
(LIBGCCJIT_HAVE_gcc_jit_context_set_bool_allow_unreachable_blocks):
New macro.
* libgccjit.map (LIBGCCJIT_ABI_2): New, containing...
(gcc_jit_context_set_bool_allow_unreachable_blocks): ...this new
entrypoint.

gcc/testsuite/ChangeLog:
PR jit/66546
* jit.dg/all-non-failing-tests.h: Add note about
test-validly-unreachable-block.c.
* jit.dg/test-validly-unreachable-block.c: New file.


Added:
trunk/gcc/testsuite/jit.dg/test-validly-unreachable-block.c
Modified:
trunk/gcc/jit/ChangeLog
trunk/gcc/jit/docs/_build/texinfo/libgccjit.texi
trunk/gcc/jit/docs/cp/topics/contexts.rst
trunk/gcc/jit/docs/topics/compatibility.rst
trunk/gcc/jit/docs/topics/contexts.rst
trunk/gcc/jit/jit-common.h
trunk/gcc/jit/jit-recording.c
trunk/gcc/jit/jit-recording.h
trunk/gcc/jit/libgccjit++.h
trunk/gcc/jit/libgccjit.c
trunk/gcc/jit/libgccjit.h
trunk/gcc/jit/libgccjit.map
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/jit.dg/all-non-failing-tests.h


[Bug c++/66686] Instantiation of dependent template template parameter with non-dependent template rejected

2015-06-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66686

--- Comment #4 from Martin Sebor msebor at gcc dot gnu.org ---
Y takes a non-type template argument which isn't provided and can't be deduced
in the instantiation (i.e., what would the value of N be in YN?)

Modifying the test case a bit to see the type Clang gives a.a shows that it
winds up instantiating an object of type AY even though no such type exists,
indicating it's a Clang bug.

$ cat t.cpp  /build/llvm-3.6.0/bin/clang++ -Wall -Wextra -Wpedantic
t.cpptemplate template int class struct A { };
template int struct Y { };
template class, class B, template template B class class C
struct X { CY a; };
Xint, int, A a;
template class T void foo (T);

int main () { foo (a.a); }
/tmp/t-310f66.o: In function `main':
t.cpp:(.text+0x9): undefined reference to `void fooAY (AY)'
clang-3.6: error: linker command failed with exit code 1 (use -v to see
invocation)


[Bug rtl-optimization/66626] [4.9/5/6 Regression] gcc.dg/torture/stackalign/non-local-goto-5.c segfaults w/ -mregparm=3

2015-06-30 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66626

--- Comment #7 from H.J. Lu hjl.tools at gmail dot com ---
Created attachment 35882
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35882action=edit
A patch


[Bug c++/66686] Instantiation of dependent template template parameter with non-dependent template rejected

2015-06-30 Thread ppalka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66686

--- Comment #5 from Patrick Palka ppalka at gcc dot gnu.org ---
(In reply to Martin Sebor from comment #4)
 Y takes a non-type template argument which isn't provided and can't be
 deduced in the instantiation (i.e., what would the value of N be in YN?)

Can't you say that for all templates passed as arguments to template template
parameters?

 
 Modifying the test case a bit to see the type Clang gives a.a shows that it
 winds up instantiating an object of type AY even though no such type
 exists, indicating it's a Clang bug.

I'm not sure I understand when you say that the type AY does not exist.  I
can declare the variable AY zzz; just fine, and I can declare a function
that takes an AY as an argument, for example.  AY seems like a standard
template.

 
 $ cat t.cpp  /build/llvm-3.6.0/bin/clang++ -Wall -Wextra -Wpedantic
 t.cpptemplate template int class struct A { };
 template int struct Y { };
 template class, class B, template template B class class C
 struct X { CY a; };
 Xint, int, A a;
 template class T void foo (T);
 
 int main () { foo (a.a); }
 /tmp/t-310f66.o: In function `main':
 t.cpp:(.text+0x9): undefined reference to `void fooAY (AY)'
 clang-3.6: error: linker command failed with exit code 1 (use -v to see
 invocation)

Sorry for my misunderstanding, I can't quite see the problem here.


[Bug libstdc++/66624] libstdc++ iostream uninitialized data

2015-06-30 Thread richard+gcc at sfere dot greenend.org.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66624

Richard Kettlewell richard+gcc at sfere dot greenend.org.uk changed:

   What|Removed |Added

 CC||richard+gcc at sfere dot 
greenend.
   ||org.uk

--- Comment #3 from Richard Kettlewell richard+gcc at sfere dot 
greenend.org.uk ---
(I'm 'richard@deodand'.)
So this is a bug in Clang (or at least in its -fsanitize implementation) then?


[Bug c/66711] New: GCC does not correctly restore diagnostic state after pragma GCC diagnostic pop with -Werror

2015-06-30 Thread steffen.muething at iwr dot uni-heidelberg.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66711

Bug ID: 66711
   Summary: GCC does not correctly restore diagnostic state after
pragma GCC diagnostic pop with -Werror
   Product: gcc
   Version: 5.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: steffen.muething at iwr dot uni-heidelberg.de
  Target Milestone: ---

Created attachment 35880
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35880action=edit
MWE, compile with gcc -Wextra -Werror wrong-diagnostic-pop.c

GCC 5.1.0 fails to correctly restore the diagnostics state after a #pragma GCC
diagnostic pop if the program was compiled with -Werror: Instead of emitting
an error, the compiler insteads issues a warning after the pragma.

I've attached a simple example file. When compiled with -Wextra -Werror, I'd
expect the output:


error.cc: In function 'int main()':
error.cc:9:10: error: comparison between signed and unsigned integer
expressions [-Werror=sign-compare]
   x += x  y ? 1 : 0;
  ^
error.cc:18:10: error: comparison between signed and unsigned integer
expressions [-Werror=sign-compare]
   x += x  y ? 1 : 0;
  ^
cc1plus: all warnings being treated as errors


But I get the following:


error.cc: In function 'int main()':
error.cc:9:10: error: comparison between signed and unsigned integer
expressions [-Werror=sign-compare]
   x += x  y ? 1 : 0;
  ^
error.cc:18:10: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
   x += x  y ? 1 : 0;
  ^
cc1plus: all warnings being treated as errors


The second diagnostic was turned into a warning. All older versions of GCC that
I have available and that support diagnostic push/pop (4.6.4, 4.7.4, 4.8.4,
4.9.2) handle this correctly and issue an error in both cases. Example output
from GCC 4.9.2:


wrong-diagnostic-pop.c: In function 'main':
wrong-diagnostic-pop.c:9:10: error: comparison between signed and unsigned
integer expressions [-Werror=sign-compare]
   x += x  y ? 1 : 0;
  ^
wrong-diagnostic-pop.c:18:10: error: comparison between signed and unsigned
integer expressions [-Werror=sign-compare]
   x += x  y ? 1 : 0;
  ^
cc1: all warnings being treated as errors


The problem is also present in the C++ frontend.


[Bug c++/66712] New: [concepts] variadic concepts cause havoc

2015-06-30 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66712

Bug ID: 66712
   Summary: [concepts] variadic concepts cause havoc
   Product: gcc
   Version: c++-concepts
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: eric.niebler at gmail dot com
  Target Milestone: ---

template class T, class...Args
concept bool _Constructible_ =
  requires (Args...args)
  {
T{ ((Args)(args))... };
  };

template class T, class...Args
constexpr bool _constructible_() { return false; }

_Constructible_{T, ...Args...}
constexpr bool _constructible_() { return true; }

struct S
{
  S(int, char const *);
};

int main()
{
  static_assert(_constructible_S, int, char const *(), );
}


Result:

temp.cpp: In function ‘int main()’:
temp.cpp:22:55: internal compiler error: tree check: expected record_type or
union_type or qual_union_type, have template_type_parm in lookup_base, at
cp/search.c:224
   static_assert(_constructible_S, int, char const *(), );
   ^

temp.cpp:22:55: internal compiler error: Aborted
g++: internal compiler error: Aborted (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


The trouble with variadic concepts is a blocker for STL2.

[Bug rtl-optimization/66665] Increment instruction is not propagated into address operand

2015-06-30 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=5

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

   What|Removed |Added

   Target Milestone|--- |6.0


[Bug rtl-optimization/66665] Increment instruction is not propagated into address operand

2015-06-30 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=5

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com ---
Created attachment 35881
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35881action=edit
A patch

This patch fixes -mtune=i686 and -mtune=i586.


[Bug other/65732] stack overflow while demangling _ZNK7VectorTIfEmlIfvEES_IDTmlcvf_EcvT__EEERKS2_

2015-06-30 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65732

--- Comment #4 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
492e19d098f4 in binutils is r205292 in gcc.


[Bug c++/66666] ARM wrong copy constructor address on multiple inheritance

2015-06-30 Thread antonio.poggiali at datalogic dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=6

--- Comment #11 from Antonio Poggiali antonio.poggiali at datalogic dot com 
---
(In reply to Mikael Pettersson from comment #10)
 (In reply to Antonio Poggiali from comment #9)
  Sorry, this code:
  
  https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/cgraphunit.
  c?r1=221077r2=221076pathrev=221077
 
 Yes, but I'm not convinced it's the real fix.

Unfortunately I can't use gcc 5 (I'm trying but it's not so easy) so, up to
now, this patch is the only way to get my system working.

Do you think this bug will be fixed in a new release (e.g. 4.9.4)?

Thank you!


[Bug middle-end/66702] New: #pragma omp declare simd uniform and linear issues

2015-06-30 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66702

Bug ID: 66702
   Summary: #pragma omp declare simd uniform and linear issues
   Product: gcc
   Version: 5.1.1
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jakub at gcc dot gnu.org
  Target Milestone: ---

void
bar (int a, int b, int *c, int d)
{
  volatile int x;
  int *volatile y;
  x = a; a = x;
  x = b; b = x;
  y = c; c = y;
  x = d; d = x;
}

void (*volatile barp) (int , int , int *, int ) = bar;

#pragma omp declare simd uniform(b, c) linear(d:2) aligned(c:32) notinbranch
int
foo (int a, int b, int *c, int d)
{
  a++;
  b++;
  c += 8;
  d += 2;
  barp (a, b, c, d);
  return a + b + *c + d;
}

volatile int e = 5;
int c[64] __attribute__((aligned (32)));

int
main ()
{
  int d = 7, r = 0;
  int b = e;
  for (int i = 0; i  64; i++)
c[i] = i;
  #pragma omp simd reduction(+:r) linear(d:2)
  for (int i = 0; i  64; i++)
{
  r += foo (i, b, c, d);
  d += 2;
}
  if (r != 7584)
__builtin_abort ();
}

is miscompiled with -O2 -fopenmp, because uniform and linear clauses were
properly handled only for non-addressable variables of gimple type.
For addressable vars (both linear and uniform) or for non-gimple types or C++
args passed by invisible reference (uniform only), if the arguments are
modified in the function, we need to make a copy of the initial var and restore
it for each VL.


[Bug libstdc++/62258] [4.9/5 Regression] uncaught_exception() equals to `true' after rethrow_exception()

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62258

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu.org
  Known to work|4.8.1   |4.8.0, 4.8.2, 6.0
Summary|[4.9/5/6 Regression]|[4.9/5 Regression]
   |uncaught_exception() equals |uncaught_exception() equals
   |to `true' after |to `true' after
   |rethrow_exception() |rethrow_exception()
  Known to fail|4.8.2, 5.0  |4.8.3, 4.8.5, 5.1.0

--- Comment #16 from Richard Biener rguenth at gcc dot gnu.org ---
I can confirm it works with 4.8.0 to 4.8.2 but fails since 4.8.3 (just verified
using -static-libstdc++ to not fool myself with the installed runtime).


[Bug libstdc++/62258] [4.9/5 Regression] uncaught_exception() equals to `true' after rethrow_exception()

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62258

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
   Priority|P3  |P2


[Bug target/66137] [4.9/5/6 Regression] ICE with -ffixed-ebp

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66137

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug testsuite/66667] FAIL: g++.dg/diagnostic/inhibit-warn-2.C

2015-06-30 Thread miyuki at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=7

Mikhail Maltsev miyuki at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Mikhail Maltsev miyuki at gcc dot gnu.org ---
Fixed for GCC 5.2
(https://gcc.gnu.org/ml/gcc-regression/2015-06/msg00712.html).


[Bug c++/66121] [5 Regression] internal compiler error: in strip_typedefs, at cp/tree.c:1369

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66121

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug tree-optimization/66263] [4.9/5/6 Regression] Performance regression from gcc-4.8 and up (trivial sudoku program)

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66263

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2
 Status|UNCONFIRMED |RESOLVED
  Known to work||4.7.4
 Resolution|--- |DUPLICATE
  Known to fail||4.8.3, 5.1.0

--- Comment #7 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed, for me:

4.7.4: 0.77s
4.8.3: 1.5s
5.1: 1.57s

with -O3, time with -O2 didn't regress.  Even with -fno-inline it regresses:

4.7.4 -O3 -fno-inline: 1.7s
5.1 -O3 -fno-inline: 2.3s

Ok, 4.7 unrolls the 

  for (digit = 1; digit = N; ++digit) {
 if (can_put_digit(row, col, box, digit)) {
put_digit(row, col, box, digit);
solve(square+1);
pop_digit(row, col, box, digit);
 }
  }

loop, so this looks like a duplicate of PR59967.  It also re-orders
basic-blocks in a way that if can_put_digit returns false (which should
be likely in the end) then it just falls thru to the next can_put_digit call.

With inlining the non-pure call is the recursion to solve ().

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


[Bug tree-optimization/59967] [4.9/5/6 Regression] Performance regression from 4.7.x to 4.8.x (loop not unrolled)

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59967

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||bdeyal at gmail dot com

--- Comment #11 from Richard Biener rguenth at gcc dot gnu.org ---
*** Bug 66263 has been marked as a duplicate of this bug. ***


[Bug testsuite/66621] [4.9/5 Regression] Mistakenly unsupported tests in g++.dg/torture/

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66621

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

Summary|[4.9/5/6 Regression]|[4.9/5 Regression]
   |Mistakenly unsupported  |Mistakenly unsupported
   |tests in g++.dg/torture/|tests in g++.dg/torture/

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed on trunk sofar.


[Bug rtl-optimization/66626] [4.9/5/6 Regression] gcc.dg/torture/stackalign/non-local-goto-5.c segfaults w/ -mregparm=3

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66626

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
   Priority|P3  |P2


[Bug target/66648] [4.9/5/6 regression] incorrect memcpy expansion with unrolled_loop strategy at -O2

2015-06-30 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66648

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug c++/60364] [[noreturn]] specified for second declaration but not first doesn't result in a diagnostic

2015-06-30 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60364

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|NEW
   Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot 
gnu.org

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com ---
Nope.


[Bug tree-optimization/66522] handle casts in nr of iterations in try_transform_to_exit_first_loop_alt

2015-06-30 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66522

--- Comment #3 from vries at gcc dot gnu.org ---
(In reply to vries from comment #2)
 https://gcc.gnu.org/ml/gcc-patches/2015-06/msg00965.html

Unproposing patch, as discussed here:
https://gcc.gnu.org/ml/gcc-patches/2015-06/msg02086.html

New patch: https://gcc.gnu.org/ml/gcc-patches/2015-06/msg02085.html


[Bug c++/66686] Instantiation of dependent template template parameter with non-dependent template rejected

2015-06-30 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66686

--- Comment #6 from Martin Sebor msebor at gcc dot gnu.org ---
The misunderstanding was mine -- I had forgotten that a template template can
be instantiated on a template without providing or deducing the arguments for
the latter.  Please disregard my comment #4.


[Bug libgomp/66715] libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-{2,3}.c exec fails -Ofast

2015-06-30 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66715

vries at gcc dot gnu.org changed:

   What|Removed |Added

Version|unknown |6.0

--- Comment #1 from vries at gcc dot gnu.org ---
This failure also reproduces on trunk


[Bug target/66563] [4.9 Regression] ICE (segmentation fault) on sh4-linux-gnu

2015-06-30 Thread kkojima at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66563

--- Comment #40 from Kazumoto Kojima kkojima at gcc dot gnu.org ---
(In reply to Oleg Endo from comment #39)
 Can we close this PR as fixed?

I've got


Testsuite summary for MPFR 3.1.3

# TOTAL: 160
# PASS:  159
# SKIP:  1
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0


with my 4.9 native compiler built with 4.9 cross compiler for svn
gcc-4_9-branch.  I hope that miscompilation for mpfr is gone for
bootstrapped 4.9 compiler and it fixes the original gcc issue too.
Matthias, Adrian, what about the original error?


[Bug debug/66714] New: gomp4: libgomp.oacc-c-c++-common/atomic_capture-1.c -g ICE

2015-06-30 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66714

Bug ID: 66714
   Summary: gomp4: libgomp.oacc-c-c++-common/atomic_capture-1.c -g
ICE
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vries at gcc dot gnu.org
  Target Milestone: ---

With gomp-4_0-branch, when running target-libgomp testsuite with
--target_board=unix/-O2/-g, we have:

c.exp:
...
FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/atomic_capture-1.c
-DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 (internal compiler error)
FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/atomic_capture-1.c
-DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 (test for excess errors)
FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/atomic_capture-1.c
-DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 (internal compiler error)
FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/atomic_capture-1.c
-DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 (test for excess errors)
...

c++.exp:
...
FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/atomic_capture-1.c
-DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 (internal compiler error)
FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/atomic_capture-1.c
-DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 (test for excess errors)
FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/atomic_capture-1.c
-DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 (internal compiler error)
FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/atomic_capture-1.c
-DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 (test for excess errors)
...

In more detail:
...
src/libgomp/testsuite/libgomp.oacc-c/../libgomp.oacc-c-c++-common/atomic_capture-1.c:
In function ‘main._omp_fn.44’:
src/libgomp/testsuite/libgomp.oacc-c/../libgomp.oacc-c-c++-common/atomic_capture-1.c:817:9:
internal compiler error: Segmentation fault
0xebeb50 crash_signal
src/gcc/toplev.c:380
0x92e939 loc_list_from_tree
src/gcc/dwarf2out.c:1
0x92ef5e loc_list_from_tree
src/gcc/dwarf2out.c:14571
0x92f3e2 loc_list_from_tree
src/gcc/dwarf2out.c:14645
0x92ef5e loc_list_from_tree
src/gcc/dwarf2out.c:14571
0x93478c add_location_or_const_value_attribute
src/gcc/dwarf2out.c:16088
0x940528 gen_variable_die
src/gcc/dwarf2out.c:19277
0x946189 gen_decl_die
src/gcc/dwarf2out.c:21028
0x94481d process_scope_var
src/gcc/dwarf2out.c:20543
0x944896 decls_for_scope
src/gcc/dwarf2out.c:20568
0x93c0c0 gen_subprogram_die
src/gcc/dwarf2out.c:18869
0x945e09 gen_decl_die
src/gcc/dwarf2out.c:20961
0x94708c dwarf2out_decl
src/gcc/dwarf2out.c:21394
0x9470ae dwarf2out_function_decl
src/gcc/dwarf2out.c:21402
0x9ecc5b rest_of_handle_final
src/gcc/final.c:4525
0x9ecfce execute
src/gcc/final.c:4567
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.
...

[Bug debug/66714] gomp4: libgomp.oacc-c-c++-common/atomic_capture-1.c -g ICE

2015-06-30 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66714

--- Comment #1 from vries at gcc dot gnu.org ---
For c.exp, at -Ofast/-g, this failure looks similar:
...
FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/reduction-1.c
-DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 (internal compiler error)
FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/reduction-1.c
-DACC_DEVICE_TYPE_host_nonshm=1 -DACC_MEM_SHARED=0 (test for excess errors)
...

In more detail:
...
src/libgomp/testsuite/libgomp.oacc-c/../libgomp.oacc-c-c++-common/reduction-1.c:
In function ‘test_reductions_minmax._omp_fn.6’:
src/libgomp/testsuite/libgomp.oacc-c/../libgomp.oacc-c-c++-common/reduction-1.c:96:1:
internal compiler error: Segmentation fault
0xebeb50 crash_signal
src/gcc/toplev.c:380
0x92e939 loc_list_from_tree
src/gcc/dwarf2out.c:1
0x92ef5e loc_list_from_tree
src/gcc/dwarf2out.c:14571
0x92f3e2 loc_list_from_tree
src/gcc/dwarf2out.c:14645
0x92ef5e loc_list_from_tree
src/gcc/dwarf2out.c:14571
0x93478c add_location_or_const_value_attribute
src/gcc/dwarf2out.c:16088
0x940528 gen_variable_die
src/gcc/dwarf2out.c:19277
0x946189 gen_decl_die
src/gcc/dwarf2out.c:21028
0x94481d process_scope_var
src/gcc/dwarf2out.c:20543
0x944896 decls_for_scope
src/gcc/dwarf2out.c:20568
0x93c0c0 gen_subprogram_die
src/gcc/dwarf2out.c:18869
0x945e09 gen_decl_die
src/gcc/dwarf2out.c:20961
0x94708c dwarf2out_decl
src/gcc/dwarf2out.c:21394
0x9470ae dwarf2out_function_decl
src/gcc/dwarf2out.c:21402
0x9ecc5b rest_of_handle_final
src/gcc/final.c:4525
0x9ecfce execute
src/gcc/final.c:4567
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.
...

[Bug debug/66716] New: gomp4: libgomp.oacc-c/../libgomp.oacc-c-c++-common/kernels-loop.c -g ICE

2015-06-30 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66716

Bug ID: 66716
   Summary: gomp4:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/kernels-lo
op.c -g ICE
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vries at gcc dot gnu.org
  Target Milestone: ---

With gomp-4_0-branch, when running target-libgomp testsuite with
--target_board=unix/-O2/-g, we have:

c.exp:
...
FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/kernels-loop.c
-DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 (internal compiler error)
FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/kernels-loop.c
-DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 (test for excess errors)
...

in more detail
...
src/libgomp/testsuite/libgomp.oacc-c/../libgomp.oacc-c-c++-common/kernels-loop.c:
In function ‘main’:
src/libgomp/testsuite/libgomp.oacc-c/../libgomp.oacc-c-c++-common/kernels-loop.c:41:1:
error: definition in block 10 does not dominate use in block 19
for SSA_NAME: ii_69 in statement:
# DEBUG ii = ii_69
src/libgomp/testsuite/libgomp.oacc-c/../libgomp.oacc-c-c++-common/kernels-loop.c:41:1:
internal compiler error: verify_ssa failed
0x1123966 verify_ssa(bool, bool)
src/gcc/tree-ssa.c:1068
0xd1a9d8 execute_function_todo
src/gcc/passes.c:1953
0xd19abf do_per_function
src/gcc/passes.c:1638
0xd1ab76 execute_todo
src/gcc/passes.c:2003
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions
...

  1   2   >