[Bug c++/60943] [C++14] Return type deduction interferes with ref-qualifiers

2015-05-22 Thread anders at sjogren dot info
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60943

--- Comment #4 from Anders Sjögren anders at sjogren dot info ---
Thanks for fixing the bug!

It seems that the test file
https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/testsuite/g%2B%2B.dg/cpp1y/pr60943.C?view=markuppathrev=223502
contains an error.

It contains:
void Bar (A a)
{
  a.f ();
}

My guess is that it was meant to call the member function from an R-value
object a. However, as an l-value at the site of the call, and both Foo and Bar
will select the l-value version. Something like std::move(a).f() or just
A{}.f(); should do the trick.

[Bug c++/60943] [C++14] Return type deduction interferes with ref-qualifiers

2015-05-22 Thread anders at sjogren dot info
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60943

--- Comment #6 from Anders Sjögren anders at sjogren dot info ---
An alternative test case, which also tests that the correct version is
selected, could be:

#include type_traits

using expected_lvalue_res_t = int;
using expected_rvalue_res_t = double;

struct A {
  auto f()  {return expected_lvalue_res_t{};}
  auto f()  {return expected_rvalue_res_t{};}
};

void lvalue_assert()
{
  A a;
  a.f();
  static_assert(std::is_samedecltype(a.f()),
expected_lvalue_res_t::value,);
}

void rvalue_assert()
{
  A{}.f();
  static_assert(std::is_samedecltype(A{}.f()),
expected_rvalue_res_t::value,);
}

[Bug tree-optimization/66233] [4.8/4.9/5/6 Regression] internal compiler error: in expand_fix, at optabs.c:5358

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66233

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Fri May 22 08:12:08 2015
New Revision: 223522

URL: https://gcc.gnu.org/viewcvs?rev=223522root=gccview=rev
Log:
Backported from mainline
2015-05-21  Jakub Jelinek  ja...@redhat.com

PR tree-optimization/66233
* match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
Simplify.

* gcc.c-torture/execute/pr66233.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.c-torture/execute/pr66233.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/match.pd
branches/gcc-5-branch/gcc/testsuite/ChangeLog


[Bug middle-end/66199] [4.9/5 Regression] lastprivate/linear clause issues on combined constructs

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66199

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Fri May 22 08:10:32 2015
New Revision: 223521

URL: https://gcc.gnu.org/viewcvs?rev=223521root=gccview=rev
Log:
Backported from mainline
2015-05-19  Jakub Jelinek  ja...@redhat.com

PR middle-end/66199
* tree.h (OMP_TEAMS_COMBINED): Define.
* gimplify.c (enum gimplify_omp_var_data): Add
GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
(enum omp_region_type): Add ORT_COMBINED_TEAMS.
(omp_notice_variable): Accept both ORT_TEAMS
and ORT_COMBINED_TEAMS.  Don't recurse if
GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
GOVD_FIRSTPRIVATE.
(omp_no_lastprivate): New function.
(gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
notice_outer and set appropriate bits, otherwise make
sure default(none) combined constructs won't complain.
(gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
outer special casing, for OMP_CLAUSE_LASTPRIVATE if
omp_no_lastprivate either remove the clause or turn it
into OMP_CLAUSE_PRIVATE.
(gimplify_omp_for): Fix up handling of implicit
lastprivate or linear iterators.
(gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
ORT_COMBINED_TEAMS.
* omp-low.c (lower_omp_for_lastprivate): For combined
for simd use fd.loop.n2 from the for rather than simd.
gcc/c/
* c-parser.c (c_parser_omp_for_loop): Don't add
OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
(c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
constructs.
gcc/cp/
* parser.c (cp_parser_omp_for_loop): Don't add
OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
(cp_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
constructs.
gcc/fortran/
* trans-openmp.c (gfc_trans_omp_teams): Set OMP_TEAMS_COMBINED for
combined constructs.
(gfc_trans_omp_target): Make sure BIND_EXPR has non-NULL
BIND_EXPR_BLOCK.
libgomp/
* testsuite/libgomp.c/pr66199-1.c: New test.
* testsuite/libgomp.c/pr66199-2.c: New test.
* testsuite/libgomp.c++/pr66199-1.C: New test.
* testsuite/libgomp.c++/pr66199-2.C: New test.
* testsuite/libgomp.fortran/pr66199-1.f90: New test.
* testsuite/libgomp.fortran/pr66199-2.f90: New test.

Added:
branches/gcc-5-branch/libgomp/testsuite/libgomp.c++/pr66199-1.C
branches/gcc-5-branch/libgomp/testsuite/libgomp.c++/pr66199-2.C
branches/gcc-5-branch/libgomp/testsuite/libgomp.c/pr66199-1.c
branches/gcc-5-branch/libgomp/testsuite/libgomp.c/pr66199-2.c
branches/gcc-5-branch/libgomp/testsuite/libgomp.fortran/pr66199-1.f90
branches/gcc-5-branch/libgomp/testsuite/libgomp.fortran/pr66199-2.f90
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/c/ChangeLog
branches/gcc-5-branch/gcc/c/c-parser.c
branches/gcc-5-branch/gcc/cp/ChangeLog
branches/gcc-5-branch/gcc/cp/parser.c
branches/gcc-5-branch/gcc/fortran/ChangeLog
branches/gcc-5-branch/gcc/fortran/trans-openmp.c
branches/gcc-5-branch/gcc/gimplify.c
branches/gcc-5-branch/gcc/omp-low.c
branches/gcc-5-branch/gcc/tree.h
branches/gcc-5-branch/libgomp/ChangeLog


[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215

--- Comment #7 from Dominik Vogt vogt at linux dot vnet.ibm.com ---
Created attachment 35595
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35595action=edit
Experimental fix

Can you please check whether this patch works for you?  The patch also contains
improved test cases that should hopefully detect anything like this happening
again.


[Bug sanitizer/61071] Compiling with AddressSanitizer with 4.9 breaks printng some variables in gdb

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61071

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-05-22
 CC||aoliva at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
--param asan-use-after-return=0 makes this work, without that in order to
support use after return the variables don't live in stack frame
(unconditionally), so are based on some pointer (which is assigned either a
stack slot address or return value from libasan function), and as -O0 -g
doesn't perform var-tracking, it then really depends on register allocation, if
the pseudo register holding that pointer is assigned some hard register through
the whole function (that is the case with t[36] apparently), or not.
For -O0 to have this working reliably, supposedly we'd have to store that
pointer into the stack and turning it into an artificial var, then add
DECL_VALUE_EXPR for all the other stack vars if they are based on this pointer
(Alex, any other thoughts?).
For -O1+/-Og/-Os, I'm surprised var-tracking doesn't handle this.


[Bug middle-end/66133] Wrong-code with noreturn #pragma omp task body

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66133

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Fri May 22 08:04:41 2015
New Revision: 223520

URL: https://gcc.gnu.org/viewcvs?rev=223520root=gccview=rev
Log:
Backported from mainline
2015-05-13  Jakub Jelinek  ja...@redhat.com

PR middle-end/66133
* omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
make sure it is never noreturn, even when the task body does not
return.
(lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
right before GIMPLE_OMP_RETURN.
(make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as -cont
for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.

* testsuite/libgomp.c/pr66133.c: New test.

Added:
branches/gcc-5-branch/libgomp/testsuite/libgomp.c/pr66133.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/omp-low.c
branches/gcc-5-branch/libgomp/ChangeLog


[Bug sanitizer/61071] Compiling with AddressSanitizer with 4.9 breaks printng some variables in gdb

2015-05-22 Thread athantor+gccbugzilla at athi dot pl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61071

--- Comment #2 from Krzysztof Kundzicz athantor+gccbugzilla at athi dot pl ---
GCC 5.1 - no change.
Compiling with clang generates debugable binary.

Bug report at ASAN project:
https://code.google.com/p/address-sanitizer/issues/detail?id=390


[Bug c/47043] allow deprecating enum values

2015-05-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47043

--- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Fri May 22 09:07:31 2015
New Revision: 223527

URL: https://gcc.gnu.org/viewcvs?rev=223527root=gccview=rev
Log:
PR c/47043
* c-common.c (handle_deprecated_attribute): Allow CONST_DECL.

* c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
attributes.

* cp-tree.h (build_enumerator): Update declaration.
* decl.c (build_enumerator): Add attributes parameter.  Call
cplus_decl_attributes.
* init.c (constant_value_1): Pass tf_none to mark_used.
* parser.c (cp_parser_enumerator_definition): Parse attributes and
pass them down to build_enumerator.
* pt.c (tsubst_enum): Pass decl attributes to build_enumerator.
* semantics.c (finish_id_expression): Don't warn_deprecated_use here.

* doc/extend.texi (Enumerator Attributes): New section.
Document syntax of enumerator attributes.

* c-c++-common/attributes-enum-1.c: New test.
* c-c++-common/attributes-enum-2.c: New test.
* g++.dg/cpp0x/attributes-enum-1.C: New test.
* g++.dg/cpp1y/attributes-enum-1.C: New test.

Added:
trunk/gcc/testsuite/c-c++-common/attributes-enum-1.c
trunk/gcc/testsuite/c-c++-common/attributes-enum-2.c
trunk/gcc/testsuite/g++.dg/cpp0x/attributes-enum-1.C
trunk/gcc/testsuite/g++.dg/cpp1y/attributes-enum-1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/c/ChangeLog
trunk/gcc/c/c-parser.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/init.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/semantics.c
trunk/gcc/doc/extend.texi
trunk/gcc/testsuite/ChangeLog


[Bug c++/56926] Crash (without ICE) while compiling Boost.Math

2015-05-22 Thread asmwarrior at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56926

--- Comment #13 from asmwarrior asmwarrior at gmail dot com ---
I did some further test with the condition I stated in comment 11. That is gcc
5.1.
Now, I have pch.h.gch file (about 200M) already generated.
First thing, I try to see whether preprocessor works OK, so I add the -E
option.
For test.cpp file
--
#include pch.h

int main()
{
int a;
int b;
int c;
a++;
b++;
}
--
Run the command:
g++.exe -v -E -Wall -fexceptions  -g -march=core2 -Wall
-ID:\mingw-builds\boost_1_55_0  -Winvalid-pch -include pch.h test.cpp -o
have-include.i

Then I comment out the first line
--
//#include pch.h

int main()
{
int a;
int b;
int c;
a++;
b++;
}
--
Then run the command below:
g++.exe -v -E -Wall -fexceptions  -g -march=core2 -Wall
-ID:\mingw-builds\boost_1_55_0  -Winvalid-pch -include pch.h test.cpp -o
no-include.i

Then I compare the result:
Both have-include.i and no-include.i are about 7M, I see the they are
nearly the same, expect the have-include.i have two extra lines.

Here is the have-include.i
--
...
...
#pragma GCC diagnostic pop
# 1 command-line 2
# 1 test.cpp
# 1 pch.h 1
# 2 test.cpp 2

int main()
{
 int a;
 int b;
 int c;
 a++;
 b++;
}
---
Here is no-include.i
--
...
...
#pragma GCC diagnostic pop
# 1 command-line 2
# 1 test.cpp



int main()
{
 int a;
 int b;
 int c;
 a++;
 b++;
}
--

Now, I try to build those .i files to object files with those command:
g++.exe -v -Wall -fexceptions  -g -march=core2 -Wall -c no-include.i -o
no-include.o
g++.exe -v -Wall -fexceptions  -g -march=core2 -Wall -c have-include.i -o
have-include.o
Result is:
I get the same result no-include.o and have-include.o. (Yes, they are
exactly same in every bytes)

Now, I did other test like below:
g++.exe -v -Wall -fexceptions  -g -march=core2 -Wall
-ID:\mingw-builds\boost_1_55_0  -Winvalid-pch -include pch.h -c test.cpp -o
have-include-c.o -save-temps

Here, I have -save-temps put in the command option, I get no
have-include-c.o file generated, also I get an empty test.ii generated.
Here is the log:
--
...
...
 D:\mingw-builds\boost_1_55_0

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/../../../../include/c++/5.1.1

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/../../../../include/c++/5.1.1/i686-w64-mi
ngw32

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/../../../../include/c++/5.1.1/backward

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/include

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/include-fixed

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/../../../../i686-w64-mingw32/include
End of search list.


--

Now, if I remove the -save-temps option, and run below:
g++.exe -v -Wall -fexceptions  -g -march=core2 -Wall
-ID:\mingw-builds\boost_1_55_0  -Winvalid-pch -include pch.h -c test.cpp -o
have-include-c.o

Still no have-include-c.o file, but this time, the log message has some extra
lines:
--
...
...
 D:\mingw-builds\boost_1_55_0

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/../../../../include/c++/5.1.1

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/../../../../include/c++/5.1.1/i686-w64-mi
ngw32

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/../../../../include/c++/5.1.1/backward

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/include

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/include-fixed

e:\code\gcc\dongsheng-daily\gcc-5-win32\bin\../lib/gcc/i686-w64-mingw32/5.1.1/../../../../i686-w64-mingw32/include
End of search list.
GNU C++ (GCC) version 5.1.1 20150512 (i686-w64-mingw32)
compiled by GNU C version 5.1.1 20150512, GMP version 5.1.3, MPFR
version 3.1.2-p11, MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: af290162d8f9d7b22486b8d9679fb0bb

--

So, it looks like happens after the preprocessor has successfully read the pch
file, when it(cc1plus.exe) try to start the parsing, it get crashed, but under
my Windows XP, I don't see any message or dialog shown up when it crashed.


[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org ---
Doesn't this disable all the other s390 tests?
Supposedly you need to prune them from the non-torture lists, see e.g.
g++.dg/dg.exp on how it prunes tests.


[Bug c/47043] allow deprecating enum values

2015-05-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47043

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #5 from Marek Polacek mpolacek at gcc dot gnu.org ---
Done.


[Bug c++/60943] [C++14] Return type deduction interferes with ref-qualifiers

2015-05-22 Thread anders at sjogren dot info
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60943

--- Comment #5 from Anders Sjögren anders at sjogren dot info ---
A typo snuck in...
However, as an l-value at the site of the call[...]
should be
However, a is an l-value at the site of the call[...]

[Bug tree-optimization/65752] Too strong optimizations int - pointer casts

2015-05-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65752

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||law at gcc dot gnu.org

--- Comment #32 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to Chung-Kil Hur from comment #29)
 Dear Richard,
 
 This time, I think I constructed a real bug.
 Please have a look and correct me if I am wrong.
 
 =
 #include stdio.h
 
 int main() {
   int x = 0;
   uintptr_t xp = (uintptr_t) x;
   uintptr_t i;
 
   for (i = 0; i  xp; i++) { }
 
   *(int*)xp = 15;
 
   printf(%d\n, x);
 }
 =
 
 This program prints 15 and I do not think this raises UB.
 
 Now I add an if-statement to the program.
 
 =
 #include stdio.h
 
 int main() {
   int x = 0;
   uintptr_t xp = (uintptr_t) x;
   uintptr_t i;
 
   for (i = 0; i  xp; i++) { }
 
   /*** begin ***/
   if (xp != i) {
 printf(hello\n);
 xp = i;
   }
   /*** end ***/
 
   *(int*)xp = 15;
 
   printf(%d\n, x);
 }
 =
 
 This program just prints 0.
 
 Since hello is not printed, the if-statement is not executed.
 However, it prints a different result than before, which I think is a bug.

It indeed is a more unfortunate case but you are still breaking the dependency
chain in the if (xp != i) code by assigning i to xp.  The code is never
executed (which is why this is unfortunate) and I am less than 100% sure
it still invokes undefined behavior.

The unfortunate thing is that the equivalence you build on the 'else'
path (xp == i) is used by the compiler to replace xp by i on the
*(int*)xp = 15 line getting us into the very same situation as in all
other cases.  That is, we have

  if (xp != i)
...
  # xp = PHI xp, i
  *(int *)xp = 15;

because of the conditional and in this case our phiopt pass optimizes that
to

  # xp = PHI i, i

instead of the equally valid

  # xp = PHI xp, xp

other passes (dom) may end up doing a similar thing (at least for GCC 5 and
the particular testcase we are lucky here though), but for GCC 5
-fdisable-tree-phiopt1 -fdisable-tree-phiopt2 avoids the issue.

Generally there is no good way to determine which choice is better.

What the PTA code does is sensible btw.  For

  # xp_20 = PHI 0(2), xp_7(7)
  xp_7 = xp_20 + 1;
  if (xp_6  xp_7)
goto bb 7;
  else
goto bb 4;

  bb 7:
  goto bb 3;

the PTA constraints are

xp_6 = x
xp_20 = NULL
xp_20 = xp_7
xp_7 = xp_20
xp_7 = NONLOCAL

which means PTA considers that all pointers coming from integer constants
point to global memory only (that's to support fixed address objects).
That helps to avoid false aliasing to stack objects and avoids the need
to make all locals escaped when you have code passing an integer to a
function (that integer, converted to a pointer _could_ point to a stack
slot in the caller, no?!).

So 'i' is considered to eventually point to arbitrary global memory.
But _not_ to arbitrary address-taken locals.


[Bug middle-end/66251] New: [6 Regression] ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1484

2015-05-22 Thread Joost.VandeVondele at mat dot ethz.ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66251

Bug ID: 66251
   Summary: [6 Regression] ICE in vect_get_vec_def_for_operand, at
tree-vect-stmts.c:1484
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: Joost.VandeVondele at mat dot ethz.ch
  Target Milestone: ---

recent regression (last day): 

gcc version 6.0.0 20150522 (experimental) [trunk revision 223512] (GCC)

 cat bug.f90
SUBROUTINE dbcsr_data_convert (n)
  COMPLEX(KIND=4), DIMENSION(:), POINTER :: s_data_c
  COMPLEX(KIND=8), DIMENSION(:), POINTER :: t_data_z
  t_data_z(1:n) = CMPLX(s_data_c(1:n), KIND=8)
  CALL foo()
END SUBROUTINE dbcsr_data_convert

 gfortran -c -O3 bug.f90
bug.f90:1:0:

 SUBROUTINE dbcsr_data_convert (n)
^
internal compiler error: in vect_get_vec_def_for_operand, at
tree-vect-stmts.c:1484
0xd97159 vect_get_vec_def_for_operand(tree_node*, gimple_statement_base*,
tree_node**)
../../gcc/gcc/tree-vect-stmts.c:1484
0xda51e3 vectorizable_store
../../gcc/gcc/tree-vect-stmts.c:5315
0xda7fbd vect_transform_stmt(gimple_statement_base*, gimple_stmt_iterator*,
bool*, _slp_tree*, _slp_instance*)
../../gcc/gcc/tree-vect-stmts.c:7466
0xdc6279 vect_schedule_slp_instance
../../gcc/gcc/tree-vect-slp.c:3502
0xdc6a90 vect_schedule_slp(_loop_vec_info*, _bb_vec_info*)
../../gcc/gcc/tree-vect-slp.c:3572
0xdafdf7 vect_transform_loop(_loop_vec_info*)
../../gcc/gcc/tree-vect-loop.c:6165
0xdcea3e vectorize_loops()
../../gcc/gcc/tree-vectorizer.c:502
Please submit a full bug report,


[Bug lto/66103] [6 Regression] ICE verify_type failed with LTO and -g -O0 via dwarf2out.c's gen_type_die_with_usage

2015-05-22 Thread burnus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66103

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org ---
Due to r223391, a variant of this already fails without LTO - see PR66214.


[Bug middle-end/66214] [6 Regression] ICE verify_type failed with -O0 -g via gen_type_die_with_usage's dwarf2out.c:20250

2015-05-22 Thread burnus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66214

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org ---
Works after reverting Honza's r223391.


[Bug middle-end/66251] [6 Regression] ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1484

2015-05-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66251

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-05-22
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
   Target Milestone|--- |6.0
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Mine.


[Bug ipa/65701] [5/6 Regression] r221530 makes 187.facerec drop with -Ofast -flto on bdver2

2015-05-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65701

--- Comment #17 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Fri May 22 09:08:46 2015
New Revision: 223528

URL: https://gcc.gnu.org/viewcvs?rev=223528root=gccview=rev
Log:
2015-05-22  Richard Biener  rguent...@suse.de

PR tree-optimization/65701
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
Move peeling cost models into one place.  Peel for alignment
for single loads only if an aligned load is cheaper than
an unaligned load.

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


[Bug c/66240] RFE: extend -falign-xyz syntax

2015-05-22 Thread josh at joshtriplett dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66240

--- Comment #3 from Josh Triplett josh at joshtriplett dot org ---
(In reply to Denis Vlasenko from comment #2)
 (In reply to Josh Triplett from comment #1)
  Another alternative discussed in that thread, which seems near-ideal: align
  functions to a given size (for instance, 64 bytes), pack them into that size
  if they fit, but avoid splitting a function across that boundary unless it's
  larger than that boundary.
 
 Josh, I would be more than happy to see gcc/ld becoming clever enough to
 pack functions intelligently (say, align big ones to cacheline boundaries,
 and fit tiny ones into the resulting padding holes). I'm afraid in the
 current state of gcc code, that'll be a very tall order to fulfil.
 
 In this BZ, I'm asking for something easy-ish to be done.

Fair enough; just wanted to get the notion on the radar.  Not because we have
to wait for the perfect solution, but because the design for improved alignment
options should take into account the possibility of additional future
expansion.


[Bug c++/66256] New: noexcept evaluation done before end of class

2015-05-22 Thread qigopsrtv at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66256

Bug ID: 66256
   Summary: noexcept evaluation done before end of class
   Product: gcc
   Version: 5.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: qigopsrtv at gmail dot com
  Target Milestone: ---

The following code does not compile (with -std=c++11):

struct test
{
// it only works if e is declared before test()
test() noexcept(e) {}
static const bool e = false;
};

int main() {}

It gives me error:'e' was not declared in this scope, while 'e' should be
visible, even though it is declared after test().
It is my understanding of the standard that the expression evaluation inside
noexcept should be done once all class members are parsed (cf. 9.2/2 of n3337).

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/gcc/src/gcc-5-20150519/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 --enable-libmpx --with-system-zlib --with-isl
--enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu
--disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object
--enable-linker-build-id --enable-lto --enable-plugin
--enable-install-libiberty --with-linker-hash-style=gnu
--enable-gnu-indirect-function --disable-multilib --disable-werror
--enable-checking=release --with-default-libstdcxx-abi=c++98
Thread model: posix
gcc version 5.1.0 (GCC)


[Bug fortran/66257] [5/6 Regression] ELEMENTAL procedure pointer component XX is not allowed as an actual argument

2015-05-22 Thread mikael at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66257

--- Comment #3 from Mikael Morin mikael at gcc dot gnu.org ---
(In reply to Dominique d'Humieres from comment #1)
 Although I have marked the PR as a regression, I am not sure that it is not
 INVALID: the error has been introduced on purpose.

I think the error applies to procedure pointers, not to the result of procedure
pointer calls.  I haven't checked the standard yet though.


[Bug fortran/66079] [6 Regression] memory leak with source allocation in internal subprogram

2015-05-22 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66079

--- Comment #5 from Paul Thomas pault at gcc dot gnu.org ---
Created attachment 35603
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35603action=edit
Nearly OK patch

The attached bootstraps and regtests on 6.0.0. The following runs without
memory leaks and fixes problems as indicated:

  type subdata
integer, allocatable :: b
  endtype
!  block
call newRealVec
!  end block
contains
  subroutine newRealVec
type(subdata), allocatable :: d, e, f
character(:), allocatable :: g, h, i
allocate(d,source=subdata(1)) ! memory was lost, now OK
allocate(e,source=d) ! OK
allocate(f,source=create (99)) ! memory was lost, now OK
if (d%b .ne. 1) call abort
if (e%b .ne. 1) call abort
if (f%b .ne. 99) call abort
allocate (g, source = greeting1(good day))
if (g .ne. good day) call abort
allocate (h, source = greeting2(hello))
if (h .ne. hello) call abort
allocate (i, source = greeting3(hiya!))
if (i .ne. hiya!) call abort
  end subroutine

  function create (arg) result(res)
integer :: arg
type(subdata), allocatable :: res
allocate(res, source = subdata(arg))
  end function

  function greeting1 (arg) result(res) ! memory was lost, now OK
character(*) :: arg
Character(:), allocatable :: res
allocate(res, source = arg)
  end function

  function greeting2 (arg) result(res)
character(5) :: arg
Character(:), allocatable :: res
allocate(res, source = arg)
  end function

  function greeting3 (arg) result(res)
character(5) :: arg
Character(5), allocatable :: res, res1
allocate(res, source = arg) ! Caused an ICE - now OK
allocate(res1, source = arg) ! Caused an ICE - now OK
if (res1 .ne. res) call abort
  end function
end

Just a small amount of cleaning up to do before submission.

Paul


[Bug fortran/66257] New: Regression: ELEMENTAL procedure pointer component XX is not allowed as an actual argument

2015-05-22 Thread gccbugreport.hgitnskl at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66257

Bug ID: 66257
   Summary: Regression: ELEMENTAL procedure pointer component XX
is not allowed as an actual argument
   Product: gcc
   Version: 5.1.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gccbugreport.hgitnskl at gmail dot com
  Target Milestone: ---

Created attachment 35602
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35602action=edit
Test code for the error

Hi everyone,

I think this is a regression for the fortran compiler. The given test code in
attachment was working in 4.9. The errors are:

Erreur: ELEMENTAL procedure pointer component ‘e’ is not allowed as an actual
argument at (1)
test.f90:54:11:

 Om = log10(self%E(z))
   1
Erreur: ELEMENTAL procedure pointer component ‘e’ is not allowed as an actual
argument at (1)

The argument, which is a double, is treated as the procedure.

[Bug fortran/66257] [5/6 Regression] ELEMENTAL procedure pointer component XX is not allowed as an actual argument

2015-05-22 Thread mikael at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66257

Mikael Morin mikael at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mikael at gcc dot gnu.org

--- Comment #2 from Mikael Morin mikael at gcc dot gnu.org ---
Draft patch, not tested

diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index fbf260f..a46ab60 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -1981,7 +1981,8 @@ resolve_actual_arglist (gfc_actual_arglist *arg,
procedure_type ptype,
}

   comp = gfc_get_proc_ptr_comp(e);
-  if (comp  comp-attr.elemental)
+  if (e-expr_type == EXPR_VARIABLE
+  comp  comp-attr.elemental)
{
gfc_error (ELEMENTAL procedure pointer component %qs is not 
   allowed as an actual argument at %L, comp-name,


[Bug rtl-optimization/66237] [6 regression] FAIL: gcc.dg/tree-prof/pr34999.c compilation, -fprofile-use -D_PROFILE_USE (internal compiler error)

2015-05-22 Thread miyuki at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66237

--- Comment #6 from Mikhail Maltsev miyuki at gcc dot gnu.org ---
Author: miyuki
Date: Fri May 22 22:58:22 2015
New Revision: 223596

URL: https://gcc.gnu.org/viewcvs?rev=223596root=gccview=rev
Log:
PR rtl-optimization/66237

* bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
location of an as_a cast.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/bb-reorder.c


[Bug middle-end/66251] [6 Regression] ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1484

2015-05-22 Thread Joost.VandeVondele at mat dot ethz.ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66251

Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch changed:

   What|Removed |Added

 CC||Joost.VandeVondele at mat dot 
ethz
   ||.ch

--- Comment #5 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
---
(In reply to Richard Biener from comment #2)
 I have a fix for the ICE:

thanks!

 but I'm not sure we create correct code here.  
 Joost - can you produce a runtime testcase that verifies correctness?

well spotted... the following fails with obviously wrong results:

 cat bug.f90
MODULE M1
CONTAINS
SUBROUTINE dbcsr_data_convert (s_data_c,t_data_z,n)
  COMPLEX(KIND=4), DIMENSION(:), POINTER :: s_data_c
  COMPLEX(KIND=8), DIMENSION(:), POINTER :: t_data_z
  t_data_z(1:n) = CMPLX(s_data_c(1:n), KIND=8)
END SUBROUTINE dbcsr_data_convert
END MODULE M1

USE M1
INTEGER :: n=2
COMPLEX(KIND=4), DIMENSION(:), POINTER :: s_data_c
COMPLEX(KIND=8), DIMENSION(:), POINTER :: t_data_z
REAL(KIND=8) :: diff
ALLOCATE(s_data_c(n),t_data_z(n))
s_data_c=(/(i,i=1,n)/)+(/(i,i=1,n)/)*(0,42)
call dbcsr_data_convert (s_data_c,t_data_z,n)
diff=ABS(t_data_z(n)-s_data_c(n))
IF (diff2*EPSILON(1.0_4)) THEN
   write(6,*) s_data_c
   write(6,*) t_data_z
   CALL ABORT()
ENDIF

END 

 gfortran -O3 -march=native -fno-inline bug.f90 ; ./a.out
 (  1.,  42.000) (  2.,  84.000)
 (  1. ,  1.0242026242921894E-312) (  42.000   
 ,  0. )

Program aborted. Backtrace:
#0  0x7F593AA0CC97
#1  0x7F593AA0DAD2
#2  0x7F593AADD128
#3  0x401233 in MAIN__ at bug.f90:?
Aborted


[Bug fortran/66257] [5/6 Regression] ELEMENTAL procedure pointer component XX is not allowed as an actual argument

2015-05-22 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66257

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

   What|Removed |Added

   Priority|P3  |P4
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-05-22
 CC||burnus at gcc dot gnu.org,
   ||janus at gcc dot gnu.org
Summary|Regression: ELEMENTAL   |[5/6 Regression] ELEMENTAL
   |procedure pointer component |procedure pointer component
   |XX is not allowed as an |XX is not allowed as an
   |actual argument |actual argument
 Ever confirmed|0   |1
   Severity|major   |normal

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Likely introduced by revision r218751 for pr63727 (see the thread starting at
https://gcc.gnu.org/ml/fortran/2014-12/msg00075.html).

Although I have marked the PR as a regression, I am not sure that it is not
INVALID: the error has been introduced on purpose.


[Bug c++/56926] Crash (without ICE) while compiling Boost.Math

2015-05-22 Thread asmwarrior at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56926

--- Comment #14 from asmwarrior asmwarrior at gmail dot com ---
The bug can be seen when -E and -fpch-preprocess is used together to
generate a preprocessed file.
If I have a small pch file named spch.h and spch.h.gch(note the spch.h.gch
size is about 47M), and if I have a test.cpp like below:
--
#include spch.h

int main()
{
int a;
int b;
int c;
a++;
b++;
}
--

Then, run the command:
g++.exe -v -E -Wall -fexceptions  -g -march=core2 -Wall
-ID:\mingw-builds\boost_1_55_0  -Winvalid-pch -include spch.h test.cpp
-fpch-preprocess -o xxx.ii -ftime-report

I will get a xxx.ii containing such contents:
--
# 1 test.cpp
# 1 D:\\mingw-builds\\test-51//
# 1 built-in
# 1 command-line
#pragma GCC pch_preprocess ./spch.h.gch
# 1 test.cpp
# 1 spch.h 1
# 2 test.cpp 2

int main()
{
 int a;
 int b;
 int c;
 a++;
 b++;
}
--

You see, the line #pragma GCC pch_preprocess ./spch.h.gch is generated
correctly, which means G++ load the pch file correctly. (That's what the
-fpch-preprocess option used for, see:
https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html)

But if I use a big pch file pch.h.gch, and run the similar command line like
above, I don't see any .ii file generated, which means G++ crashed before log
out the line #pragma GCC pch_preprocess 

By reading the source code, I see that in gcc-4.9.2\gcc\c-family\c-ppoutput.c,
there is a function:

/* Load in the PCH file NAME, open on FD.  It was originally searched for
   by ORIG_NAME.  Also, print out a #include command so that the PCH
   file can be loaded when the preprocessed output is compiled.  */

static void
cb_read_pch (cpp_reader *pfile, const char *name,
 int fd, const char *orig_name ATTRIBUTE_UNUSED)
{
  c_common_read_pch (pfile, name, fd, orig_name);

  fprintf (print.outf, #pragma GCC pch_preprocess \%s\\n, name);
  print.src_line++;
}

So, the bug happens before the fprintf() function, maybe inside the
c_common_read_pch function call. 

I would like to see anyone can supply a debug version of 32bit cc1plus.exe, so
that I can hunt the bug further under GDB, because building the whole gcc tool
chain is too difficult for me.


[Bug other/66259] New: Combined gcc and binutils build from git-master fails, with gas/as-new not existing

2015-05-22 Thread darlingm at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66259

Bug ID: 66259
   Summary: Combined gcc and binutils build from git-master fails,
with gas/as-new not existing
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
  Assignee: unassigned at gcc dot gnu.org
  Reporter: darlingm at gmail dot com
  Target Milestone: ---

Posted this first at binutils.  Alan Modra said Not a binutils bug. and
closed it, at https://sourceware.org/bugzilla/show_bug.cgi?id=18450

On a fresh Fedora 21 install:

sudo yum install git gcc gcc-c++ texinfo-tex flex bison mpfr-devel gmp-devel
libmpc-devel isl isl-devel
mkdir gcc.binutils.combined
cd gcc.binutils.combined
git clone git://gcc.gnu.org/git/gcc.git gcc.git
git clone git://sourceware.org/git/binutils-gdb.git binutils-gdb.git
mkdir combined
cd combined
ln -s ../gcc.git/* .
ln --force -s ../binutils-gdb.git/* .
mkdir ../../gcc.binutils.combined.build.gcc
cd ../../gcc.binutils.combined.build.gcc
../gcc.binutils.combined/combined/configure --disable-multilib  make  sudo
make install

Wind up getting:
../gcc.binutils.combined.build.gcc/./prev-gcc/as: line 106:
../gcc.binutils.combined.build.gcc/./gas/as-new: No such file or directory

Line 106 is:
exec $original ${1+$@} # with $original coming from case $original in

With:
[gcc.binutils.combined.build.gcc]$ find . | grep as-new
./prev-gas/as-new

Should gcc.binutils.combined.build.gcc/./prev-gcc/as:106 be calling
./prev-gas/as-new rather than ./gas/as-new ?


[Bug target/66258] New: compiling a stdarg function with arch +nofp generates an ICE

2015-05-22 Thread wilson at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66258

Bug ID: 66258
   Summary: compiling a stdarg function with arch +nofp generates
an ICE
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: wilson at gcc dot gnu.org
  Target Milestone: ---

palantir:2187$ more tmp.c
#include stdarg.h

int
sub (int num, ...)
{
  va_list ap;
  int j;

  va_start (ap, num);
  j = va_arg (ap, int);
  va_end (ap);

  return j;
}
palantir:2188$ ./xgcc -B./ -O -S tmp.c -mcpu=cortex-a53+nofp
tmp.c: In function ‘sub’:
tmp.c:14:1: error: unrecognizable insn:
 }
 ^
(insn 86 9 87 2 (set (reg:DI 0 x0 [101])
(truncate:DI (reg:TI 32 v0))) tmp.c:5 -1
 (nil))
tmp.c:14:1: internal compiler error: in extract_insn, at recog.c:2329
0xa32b9a _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
../../gcc-svn/gcc/rtl-error.c:110
0xa32bc9 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
../../gcc-svn/gcc/rtl-error.c:118
0xa078e7 extract_insn(rtx_insn*)
../../gcc-svn/gcc/recog.c:2329
0xa07964 extract_insn_cached(rtx_insn*)
../../gcc-svn/gcc/recog.c:2220
0x79df7d cleanup_subreg_operands(rtx_insn*)
../../gcc-svn/gcc/final.c:3140
0xa05277 split_insn
../../gcc-svn/gcc/recog.c:2943
0xa09cc7 split_all_insns()
../../gcc-svn/gcc/recog.c:2997
0xa09d52 rest_of_handle_split_after_reload
../../gcc-svn/gcc/recog.c:3938
0xa09d52 execute
../../gcc-svn/gcc/recog.c:3967
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.
palantir:2189$ 

The problem is that all of the FP move patterns in the aarch64.md file use
TARGET_FLOAT, which checks both -mgeneral-regs-only and architecture fp
support.  However, the stdarg code is only checking TARGET_GENERAL_REGS_ONLY. 
It needs to use TARGET_FLOAT instead.  There is the same problem in the
secondary reloads code and in the function value regno code.

Patch to be submitted shortly.

[Bug other/66259] Combined gcc and binutils build from git-master fails, with gas/as-new not existing

2015-05-22 Thread darlingm at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66259

--- Comment #1 from Michael Darling darlingm at gmail dot com ---
BTW, this happens on stage 2.

Uncombined build works just fine...

If I:

mkdir binutils.build.gcc492
cd binutils.build.gcc492
../gcc.binutils.combined/binutils-gdb.git/configure --disable-multilib  make
 sudo make install
^^ this uses gcc 4.9.2


Or, even if I:

mkdir gcc.build.gcc
cd gcc.build.gcc
../gcc.binutils.combined/gcc.git/configure --disable-multilib  make  sudo
make install
hash -r
// add /usr/local/lib64 to ldconfig, and run ldconfig
mkdir ../binutils.build.gcc6
cd ../binutils.build.gcc6
../gcc.binutils.combined/binutils-gdb.git/configure --disable-multilib  make
 sudo make install
^^ case uses gcc6
// then I can even
ldconfig
mkdir ../gcc.build.gcc6.with.new.binutils
cd ../gcc.build.gcc6.with.new.binutils
../gcc.binutils.combined/gcc.git/configure --disable-multilib  make  sudo
make install


[Bug libstdc++/53477] pretty printer fails with: Python Exception type 'exceptions.IndexError' list index out of range

2015-05-22 Thread tomga at wp dot pl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53477

--- Comment #22 from Tomasz Gajewski tomga at wp dot pl ---
In comment #10 I've provided test patch to test case that exposed a problem
(and in comment #11 some fix to all those tests). Currently I can't check if it
applies cleanly and if errors occur. If you want probably I can find some time
in next few weeks.


[Bug other/63387] Optimize pairs of isnan() calls into a single isunordered()

2015-05-22 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63387

--- Comment #8 from Marc Glisse glisse at gcc dot gnu.org ---
Author: glisse
Date: Fri May 22 21:05:26 2015
New Revision: 223591

URL: https://gcc.gnu.org/viewcvs?rev=223591root=gccview=rev
Log:
2015-05-22  Marc Glisse  marc.gli...@inria.fr

PR tree-optimization/63387
gcc/
* match.pd ((X /[ex] A) * A - X): Remove unnecessary condition.
((x ord x)  (y ord y) - (x ord y),
(x ord x)  (x ord y) - (x ord y)): New simplifications.
* fold-const.c (tree_unary_nonnegative_warnv_p) ABS_EXPR: Handle
vectors like scalars.
gcc/testsuite/
* gcc.dg/pr63387-2.c: New testcase.


Added:
trunk/gcc/testsuite/gcc.dg/pr63387-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c
trunk/gcc/match.pd
trunk/gcc/testsuite/ChangeLog


[Bug c++/66260] New: [C++14] Failure to compile variable template with recursively defined partial specialization

2015-05-22 Thread Casey at Carter dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66260

Bug ID: 66260
   Summary: [C++14] Failure to compile variable template with
recursively defined partial specialization
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: Casey at Carter dot net
  Target Milestone: ---

Created attachment 35604
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35604action=edit
testcase.cpp

Both GCC 5.1.0 and 6.0 fail to compile this program:

template class
constexpr bool foo = false;
template 
constexpr bool fooint = true;
template class T, int N
constexpr bool fooT[N] = fooT;

static_assert(fooint, );
static_assert(!foodouble, );
static_assert(fooint[3], );
static_assert(!foodouble[3], );
static_assert(fooint[2][5][3], );
static_assert(!foodouble[2][5][3], );

int main() {}

5.1.0 doesn't seem to recognize that foo is a template-name in the definition
of the fooT[N] partial specialization:

prog.cc:6:33: error: expected primary-expression before '' token
 constexpr bool fooT[N] = fooT;
 ^
prog.cc:6:34: error: expected primary-expression before ';' token
 constexpr bool fooT[N] = fooT;
  ^
prog.cc:6: confused by earlier errors, bailing out

6.0 20150522 at least tries to compile the recursion, but fails nonetheless:

prog.cc: In instantiation of 'constexpr const bool foo':
prog.cc:6:16:   recursively required from 'constexpr const bool foo'
prog.cc:6:16:   required from 'constexpr const bool foo'
prog.cc:10:15:   required from here
prog.cc:6:16: fatal error: template instantiation depth exceeds maximum of 900
(use -ftemplate-depth= to increase the maximum)
 constexpr bool fooT[N] = fooT;
^
compilation terminated.


[Bug c++/66255] [6 Regression] ice in retrieve_specialization

2015-05-22 Thread miyuki at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66255

Mikhail Maltsev miyuki at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Known to work||4.9.2, 5.1.0
   Keywords||ice-on-valid-code
   Last reconfirmed||2015-05-23
 CC||miyuki at gcc dot gnu.org
 Ever confirmed|0   |1
Summary|ice in  |[6 Regression] ice in
   |retrieve_specialization |retrieve_specialization
  Known to fail||6.0

--- Comment #1 from Mikhail Maltsev miyuki at gcc dot gnu.org ---
Reduced testcase:

typedef int int_t;

template int_t 
struct S { };

int_t a;
S a b;


[Bug ipa/66223] [5/6 Regression] Diagnostic of pure virtual function call broken, including __cxa_pure_virtual

2015-05-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66223

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |NEW
  Component|c++ |ipa
Summary|Diagnostic of pure virtual  |[5/6 Regression] Diagnostic
   |function call broken,   |of pure virtual function
   |including   |call broken, including
   |__cxa_pure_virtual  |__cxa_pure_virtual

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
With -O2 you just get a segfault.

With -O1 or -O2 -fno-devirtualize you get the old output.


[Bug c++/65415] using, base class static member function template, and decltype

2015-05-22 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65415

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
Closing as Dup. We may want to add the testcase, though, it's slightly
different.

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


[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215

--- Comment #11 from Dominik Vogt vogt at linux dot vnet.ibm.com ---
(In reply to Jakub Jelinek from comment #10)
 As for the hotpatch testcases, have you tested them also with
 -fno-dwarf2-cfi-asm (as they seem to contain .cfi directives in the regexps)?

Not yet.  I'll add another test case for that.  The regexp is supposed to skip
all lines with .cfi_... or labels matching .L*:, so -fno-dwarf2-cfi-asm should
not matter, but testing is besser than guessing.

 And for the main patch, the change will revert the order of 2, 4 and 6 byte
 nops post-label

The order is the same because the patch never updates insn.  The order would
be reversed if I had written insn = emit_before_insn (...), keeping the
assignment.  The tests indirectly verify that the order is correct.  For
example, hotpatch-5.c tests that with -mhotpatch=...,4 the first instruction
after the comment is a 6-byte-NOP:

hp1:
# post-label NOPs for hotpatch (4 halfwords)
.LFB0:
.cfi_startproc
brcl0, 0
nopr%r7
stmg%r11,%r15,88(%r15)

 is that ok?

No, that would be incorrect.  It is important that the largest NOP comes first


[Bug c++/65061] [4.8/4.9 Regression] Issue with using declaration and member class template

2015-05-22 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65061

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com ---
Jason, shall we just close this as fixed in 5.1, or we want to try backporting
the simple fix to 4_9-branch?


[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215

--- Comment #9 from Dominik Vogt vogt at linux dot vnet.ibm.com ---
Yeah, I accidentally left the other test cases commented out.  I'll clean that
up in the next version of the patch.  That doesn't have an impact on the
correctness of the code change, though.


[Bug c++/65598] Fix column location for 'explicit'

2015-05-22 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65598

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

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


[Bug tree-optimization/62171] restrict pointer to struct with restrict pointers parm doesn't prevent aliases

2015-05-22 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62171

--- Comment #5 from vries at gcc dot gnu.org ---
(In reply to Richard Biener from comment #1)
 It may already work
 if you use C++ and
 
 static double __attribute__((noinline, noclone))
 f (struct omp_data_i __restrict__ p, int argc)
 {
 
 ?  That is, if the middle-end uses a REFERENCE_TYPE?

Confirmed, rewriting the example with 'struct omp_data_i ' and compiling with
g++ solves the aliasing problem.


[Bug c++/65061] [4.8/4.9 Regression] Issue with using declaration and member class template

2015-05-22 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65061

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||rs2740 at gmail dot com

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com ---
*** Bug 65415 has been marked as a duplicate of this bug. ***


[Bug tree-optimization/66142] Loop is not vectorized because not sufficient support for GOMP_SIMD_LANE

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66142

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Ah, but fre2 is able to optimize those:
  D.2881[_12].dir.x = x_13;
...
  _32 = MEM[(const struct Ray *)D.2881][_12].dir.x;
cases to
  _32 = x_13;
The problem in FRE2 is only with the MEM_REFs.
If in the testcase
-  ray.org = p;
+  ray.org.x = p.x;
+  ray.org.y = p.y;
then FRE2 handles it completely and the problem is the same between -fopenmp
and -fno-openmp - ifcvt not ifconverting the loop.


[Bug tree-optimization/66142] Loop is not vectorized because not sufficient support for GOMP_SIMD_LANE

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66142

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
Ah, and the reason for the ifcvt failure is that we have an unoptimized
virtual PHI in the loop that ifcvt gives up on:
  # .MEM_55 = PHI .MEM_55(7), .MEM_5(D)(2)
Only phicprop2 pass is able to optimize that away (and replace all uses
of .MEM_55 with .MEM_5(D)).


[Bug tree-optimization/66142] Loop is not vectorized because not sufficient support for GOMP_SIMD_LANE

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66142

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 35596
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35596action=edit
gcc6-pr66142.patch

Fix for the ifcvt issue.  With this the modified testcase is vectorized.


[Bug middle-end/66251] [6 Regression] ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1484

2015-05-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66251

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||matz at gcc dot gnu.org

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
I have a fix for the ICE:

Index: gcc/tree-vect-stmts.c
===
--- gcc/tree-vect-stmts.c   (revision 223529)
+++ gcc/tree-vect-stmts.c   (working copy)
@@ -3964,14 +3964,12 @@ vectorizable_conversion (gimple stmt, gi

  if (slp_node)
SLP_TREE_VEC_STMTS (slp_node).quick_push (new_stmt);
+
+ if (!prev_stmt_info)
+   STMT_VINFO_VEC_STMT (stmt_info) = new_stmt;
  else
-   {
- if (!prev_stmt_info)
-   STMT_VINFO_VEC_STMT (stmt_info) = new_stmt;
- else
-   STMT_VINFO_RELATED_STMT (prev_stmt_info) = new_stmt;
- prev_stmt_info = vinfo_for_stmt (new_stmt);
-   }
+   STMT_VINFO_RELATED_STMT (prev_stmt_info) = new_stmt;
+ prev_stmt_info = vinfo_for_stmt (new_stmt);
}
}

but I'm not sure we create correct code here.  The strided-store path
looks wrong to me.  Micha?

  vect__19.9_70 = [vec_unpack_lo_expr] vect_cst_.8_69;
  vect__19.9_71 = [vec_unpack_hi_expr] vect_cst_.8_69;
  _21 = (real(kind=8)) _20;
  _82 = BIT_FIELD_REF vect__19.9_70, 64, 0;
  MEM[(real(kind=8) *)ivtmp_72] = _82;
  ivtmp_84 = ivtmp_72 + _81;
  _85 = BIT_FIELD_REF vect__19.9_70, 64, 64;
  MEM[(real(kind=8) *)ivtmp_84] = _85;

we load a v4sf and unpack to two v2df vectors (unrolling factor of two
is applied).  But then the strided store code appears to just store
from the first vector, the realpart to the first unrolled iteration
destination realpart and the imagpart to the second unrolled interation
realpart!?

(gdb) p ncopies
$1 = 1
(gdb) p vec_num
$2 = 2

you somehow miss the loop over vec_num.  Or you miss to reject the
testcase for strided stores (possibly our patches just crossed here).
That is, SLP support seems to be absent here.

Joost - can you produce a runtime testcase that verifies correctness?

Meanwhile testing the ICE fixing patch.


[Bug tree-optimization/62171] restrict pointer to struct with restrict pointers parm doesn't prevent aliases

2015-05-22 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62171

--- Comment #3 from vries at gcc dot gnu.org ---
(In reply to Richard Biener from comment #2)
 And maybe set DECL_BY_REFERENCE, a mere REFERENCE_TYPE doesn't prevent
 you from doing (param)[2] which we'd miscompile.  Not sure who added
 that REFERENCE_TYPE code.

Submitted here: https://gcc.gnu.org/ml/gcc-patches/2011-09/msg01489.html
OK-ed here: https://gcc.gnu.org/ml/gcc-patches/2011-09/msg01489.html


[Bug tree-optimization/62171] restrict pointer to struct with restrict pointers parm doesn't prevent aliases

2015-05-22 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62171

--- Comment #4 from vries at gcc dot gnu.org ---
(In reply to vries from comment #3)
 (In reply to Richard Biener from comment #2)
  And maybe set DECL_BY_REFERENCE, a mere REFERENCE_TYPE doesn't prevent
  you from doing (param)[2] which we'd miscompile.  Not sure who added
  that REFERENCE_TYPE code.


[correcting copy/past-o]

Submitted here: https://gcc.gnu.org/ml/gcc-patches/2011-09/msg01426.html
OK-ed here: https://gcc.gnu.org/ml/gcc-patches/2011-09/msg01489.html


[Bug fortran/66089] [6 Regression] elemental dependency mishandling when derived types are involved

2015-05-22 Thread vehre at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66089

--- Comment #9 from vehre at gcc dot gnu.org ---
That was a rhetorical question.

In the patch you submitted in comment #2 could you put a comment (in the
source) at:

Index: trans-array.c
===
--- trans-array.c   (révision 222968)
+++ trans-array.c   (copie de travail)
@@ -2451,7 +2451,8 @@ gfc_scalar_elemental_arg_saved_as_reference (gfc_s
@@ -4465,6 +4466,10 @@ gfc_conv_resolve_dependencies (gfc_loopinfo * loop

nDepend = gfc_check_dependency (dest_expr, ss_expr, false);

here
+ if (ss-info-type == GFC_SS_REFERENCE
+  gfc_check_dependency (dest_expr, ss_expr, false) == 1)
+   ss-info-data.scalar.need_temporary = 1;
+
  continue;
}

what the reason for this check and set of the flag is? Now it is clear to us,
but in the future we might be wondering. 

Furthermore is the flag name need_temporary correct here? I think, that it
should have the polymorphic nature of its existence in its name. Like
non_polymorphic_temp or the like. 

I am still wondering whether there isn't a counterexample where this is not
working, i.e., we have lhs-rhs-dependency that is polymorphic. But because
assignment to (allocatable) polymorphic entities is not allowed, I could not
come up with one.

[Bug middle-end/66241] [6 regression] [ARM] ICE: verify_type failed while building libstdc++ (dwarfout.c: gen_type_die_with_usage())

2015-05-22 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66241

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

   Last reconfirmed|2015-05-21 00:00:00 |2015-5-22
 CC||ktkachov at gcc dot gnu.org

--- Comment #4 from ktkachov at gcc dot gnu.org ---
I'm seeing this as well (as it is blocking the arm-none-linux-gnueabihf build)


[Bug tree-optimization/66142] Loop is not vectorized because not sufficient support for GOMP_SIMD_LANE

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66142

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
On this testcase, I believe it is most important to change FRE and SRA.
Without -fopenmp, we have before fre2:
  MEM[(struct ray_ *)ray] = 1.0e+0;
  MEM[(struct ray_ *)ray + 4B] = _8;
  ray.dir.x = x_10;
  ray.dir.y = y_11;
...
  _23 = ray.org.x;
  _26 = ray.org.y;
  _29 = ray.dir.x;
  _31 = ray.dir.y;
and fre2 optimizes this into the values stored in there.  With -fopenmp, we
have the SIMD_LANE based array references:
  _12 = GOMP_SIMD_LANE (simduid.0_11(D));
  _9 = D.2881[_12].org;
  MEM[(struct vec_ *)_9] = 1.0e+0;
  MEM[(struct vec_ *)_9 + 4B] = _8;
  D.2881[_12].dir.x = x_13;
  D.2881[_12].dir.y = y_14;
...
  _26 = MEM[(const struct Ray *)D.2881][_12].org.x;
  _29 = MEM[(const struct Ray *)D.2881][_12].org.y;
  _32 = MEM[(const struct Ray *)D.2881][_12].dir.x;
  _34 = MEM[(const struct Ray *)D.2881][_12].dir.y;
that fre2 isn't able to optimize.  Doing something here on the vectorizer side
is too late, we really need to scalarize those or remove completely (through
fre2).


[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215

--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org ---
As for the hotpatch testcases, have you tested them also with
-fno-dwarf2-cfi-asm (as they seem to contain .cfi directives in the regexps)?
And for the main patch, the change will revert the order of 2, 4 and 6 byte
nops post-label, is that ok?  Say if some hotpatching code were to verify it
overwrites the nops and required the old order.


[Bug bootstrap/66252] New: [6 regression] bootstrap comparison failures on sparc-linux

2015-05-22 Thread mikpelinux at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66252

Bug ID: 66252
   Summary: [6 regression] bootstrap comparison failures on
sparc-linux
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mikpelinux at gmail dot com
  Target Milestone: ---

Attempting to bootstrap gcc trunk on sparc64-linux with options to default to
32-bit code, fails with:

Comparing stages 2 and 3
warning: gcc/cc1-checksum.o differs
warning: gcc/cc1plus-checksum.o differs
Bootstrap comparison failure!
gcc/ggc-page.o differs
gcc/tree-ssa-alias.o differs
gcc/gimple-streamer-in.o differs
gcc/host-linux.o differs
gcc/lto-streamer-in.o differs
gcc/builtins.o differs
gcc/expmed.o differs
gcc/ipa-inline-analysis.o differs
gcc/lto-cgraph.o differs
gcc/dwarf2out.o differs
gcc/ipa-cp.o differs
gcc/fold-const.o differs
gcc/df-core.o differs
gcc/ipa-prop.o differs
gcc/lra-spills.o differs
gcc/tree-streamer-in.o differs
gcc/ubsan.o differs
gcc/ipa-inline.o differs
gcc/calls.o differs
gcc/ifcvt.o differs
gcc/cgraph.o differs
gcc/asan.o differs
gcc/profile.o differs
gcc/expr.o differs
gcc/lra-eliminations.o differs
gcc/ipa-devirt.o differs
gcc/ipa-profile.o differs
gcc/lto-streamer.o differs
gcc/real.o differs
gcc/lra-constraints.o differs
gcc/reload.o differs
gcc/gcov-dump.o differs
gcc/gimple-fold.o differs
gcc/ggc-common.o differs
gcc/combine.o differs
gcc/tree-ssa-threadupdate.o differs
gcc/value-prof.o differs
gcc/gcc.o differs
gcc/statistics.o differs
gcc/sched-rgn.o differs
libbacktrace/dwarf.o differs
libcpp/expr.o differs
libdecnumber/decimal128.o differs
make[2]: *** [compare] Error 1
make[2]: Leaving directory `/mnt/scratch/objdir'
make[1]: *** [stage3-bubble] Error 2
make[1]: Leaving directory `/mnt/scratch/objdir'
make: *** [bootstrap] Error 2

It appears to have going on for a while now, my last successful bootstrap of
trunk was with the 20150419 snapshot.  Starting a bisection now.

Configured with:
/mnt/scratch/gcc-trunk-r223498/configure --prefix=/mnt/scratch/install6
--with-gmp=/home/mikpe/pkgs/linux-sparc64/gmp-6.0.0
--with-mpfr=/home/mikpe/pkgs/linux-sparc64/mpfr-3.1.2
--with-mpc=/home/mikpe/pkgs/linux-sparc64/mpc-1.0.3 --enable-multilib
--disable-plugin --disable-lto --disable-nls --enable-threads=posix
--enable-checking=release --disable-libmudflap --enable-languages=c,c++
--build=sparc-unknown-linux --target=sparc-unknown-linux --with-cpu=ultrasparc
--enable-targets=all --disable-libsanitizer


[Bug c/54006] __atomic_always_lock_free inconsistent with __GCC_ATOMIC_INT_LOCK_FREE et al.

2015-05-22 Thread nick.mayerho...@rise-world.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54006

Nick nick.mayerho...@rise-world.com changed:

   What|Removed |Added

 CC||nick.mayerhofer@rise-world.
   ||com

--- Comment #4 from Nick nick.mayerho...@rise-world.com ---
FYI:
There is also a debian bug [1], an entry in the debian mailing list [2], a
related bug in the nghttp2 project [3] (with a cpp code-based workaround [4])
and a similar looking entry at stackoverflow [5].

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=727621
[2] https://lists.debian.org/debian-arm/2013/12/msg7.html
[3] https://github.com/tatsuhiro-t/nghttp2/issues/86
[4]
https://github.com/tatsuhiro-t/nghttp2/commit/ba92935f64627f77d3b9a1439766d83dc0c9f679
[5]
http://stackoverflow.com/questions/22036396/stdpromise-error-on-cross-compiling


[Bug middle-end/66251] [6 Regression] ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1484

2015-05-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66251

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Fri May 22 12:34:46 2015
New Revision: 223552

URL: https://gcc.gnu.org/viewcvs?rev=223552root=gccview=rev
Log:
2015-05-22  Richard Biener  rguent...@suse.de

PR tree-optimization/66251
* tree-vect-stmts.c (vectorizable_conversion): Properly
set STMT_VINFO_VEC_STMT even for the SLP case.

* gfortran.fortran-torture/compile/pr66251.f90: New testcase.

Added:
trunk/gcc/testsuite/gfortran.fortran-torture/compile/pr66251.f90
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-stmts.c


[Bug bootstrap/66252] [6 regression] bootstrap comparison failures on sparc-linux

2015-05-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66252

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |6.0


[Bug target/52049] SH Target: Inefficient constant address access

2015-05-22 Thread olegendo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52049

--- Comment #2 from Oleg Endo olegendo at gcc dot gnu.org ---
There is a GSoC 2015 project which will try to address the AMS problem.
https://www.google-melange.com/gsoc/project/details/google/gsoc2015/erikvarga/5693417237512192

It will be initially for SH.  If it works out, it can be generalized so that
other targets can benefit from it, too.


[Bug other/66250] Can't adjust complex nor decimal floating point modes

2015-05-22 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66250

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-05-22
   Target Milestone|--- |6.0
 Ever confirmed|0   |1

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com ---
A patch is posted at

https://gcc.gnu.org/ml/gcc-patches/2015-05/msg02094.html


[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215

--- Comment #12 from Dominik Vogt vogt at linux dot vnet.ibm.com ---
Created attachment 35597
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35597action=edit
Experimental fix 2

Version 2 of the patch with the suggested changes and test fixes.

Note: Functions without active insns will get the pre-label NOPs, the comment
# post-label NOPs but no NOPs after that.  Not sure whether it's worth the
effort to clean this up.

Please test if this fixes the observed problem (it does for me).


[Bug middle-end/66253] [6 Regression] 459.GemsFDTD in SPEC CPU 2006 is miscompiled

2015-05-22 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66253

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-05-22
Version|5.1.1   |6.0
   Target Milestone|--- |6.0
 Ever confirmed|0   |1


[Bug target/66224] PowerPC _GLIBCXX_READ_MEM_BARRIER too weak

2015-05-22 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66224

--- Comment #3 from David Edelsohn dje at gcc dot gnu.org ---
Author: dje
Date: Fri May 22 12:43:02 2015
New Revision: 223554

URL: https://gcc.gnu.org/viewcvs?rev=223554root=gccview=rev
Log:
PR target/66224
* config/cpu/powerpc/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER):
Don't use isync. Use lwsync if available.
* configure.host (atomic_word_dir) [aix[56789]*]: Delete to use
powerpc cpu definition.

Modified:
branches/gcc-5-branch/libstdc++-v3/ChangeLog
branches/gcc-5-branch/libstdc++-v3/config/cpu/powerpc/atomic_word.h
branches/gcc-5-branch/libstdc++-v3/configure.host


[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215

--- Comment #14 from Dominik Vogt vogt at linux dot vnet.ibm.com ---
Is it possible that a function has no insns at all?


[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215

Dominik Vogt vogt at linux dot vnet.ibm.com changed:

   What|Removed |Added

  Attachment #35597|0   |1
is obsolete||

--- Comment #15 from Dominik Vogt vogt at linux dot vnet.ibm.com ---
Created attachment 35598
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35598action=edit
Experimental fix 3

Version 3 of the patch with the suggested change; also fixes th
egcc_unreachable test.


[Bug target/65832] Inefficient vector construction

2015-05-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65832

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
On a related note, store_constructor handles VECTOR_TYPE constructors through
the vec_init optab but that doesn't work for vector elements:

/* Don't use vec_initmode if some elements have VECTOR_TYPE.  */
if (icode != CODE_FOR_nothing)
  {
tree value;

FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (exp), idx, value)
  if (TREE_CODE (TREE_TYPE (value)) == VECTOR_TYPE)
{
  icode = CODE_FOR_nothing;

instead it could, for say a V16QI constructor of four V4QI elements pun
the elements to SI mode, create a V4SI mode vector via vec_init and then
pun it to V16QI.  All punning via subregs.

The vectorizer currently creates such vector constructors from grouped strided
load/store support.


[Bug middle-end/66253] New: [6 Regression] 459.GemsFDTD in SPEC CPU 2006 is miscompiled

2015-05-22 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66253

Bug ID: 66253
   Summary: [6 Regression] 459.GemsFDTD in SPEC CPU 2006 is
miscompiled
   Product: gcc
   Version: 5.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hjl.tools at gmail dot com
  Target Milestone: ---

On Linux/x86-64, 459.GemsFDTD in SPEC CPU 2006 is miscompiled:

gfortran  -O3 -funroll-loops -ffast-math   -DSPEC_CPU_LP64errorcheck.o
parameter.o globalvar.o excite.o fourier_transf.o huygens.fppized.o posvector.o
NFT.fppized.o readline.o PEC.o UPML.fppized.o calcflops.o progress.o
update.fppized.o leapfrog.o readdata.o GemsFDTD.o timerRoutine.o   
 -o GemsFDTD

Running Benchmarks
  Running 459.GemsFDTD ref peak lnx32e-gcc default

*** Miscompare of sphere_td.nft; for details see

r223425 is OK and r223491 is bad.


[Bug middle-end/66251] [6 Regression] ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1484

2015-05-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66251

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu.org
   Assignee|rguenth at gcc dot gnu.org |matz at gcc dot gnu.org

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
ICE fixed, handing over to Micha.


[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215

--- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org ---
The only function without active insns I'm aware of is:
void
foo (void)
{
  __builtin_unreachable ();
}
which only contains notes and a BARRIER, nothing else (at least on s390x).
It would be desirable to handle even that, otherwise a hotpatcher would
overwrite random bytes from some other function.
One option would be to avoid using next_active_insn:
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
  if (active_insn_p (insn) || BARRIER_P (insn))
break;
Adding the nops after a BARRIER is generally undesirable I'd say.


[Bug target/53911] [SH] Improve displacement addressing

2015-05-22 Thread olegendo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53911

--- Comment #4 from Oleg Endo olegendo at gcc dot gnu.org ---
There is a GSoC 2015 project which will try to address the AMS problem.
https://www.google-melange.com/gsoc/project/details/google/gsoc2015/erikvarga/5693417237512192

It will be initially for SH.  If it works out, it can be generalized so that
other targets can benefit from it, too.


[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215

Dominik Vogt vogt at linux dot vnet.ibm.com changed:

   What|Removed |Added

  Attachment #35598|0   |1
is obsolete||

--- Comment #17 from Dominik Vogt vogt at linux dot vnet.ibm.com ---
Created attachment 35599
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35599action=edit
Experimental fix 4

Version 4 of the patch with the suggested change and a test case for it.


[Bug tree-optimization/60890] Performance regression in 4.8 for memory postinc

2015-05-22 Thread olegendo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60890

--- Comment #3 from Oleg Endo olegendo at gcc dot gnu.org ---
There is a GSoC 2015 project which will try to address the AMS problem.
https://www.google-melange.com/gsoc/project/details/google/gsoc2015/erikvarga/5693417237512192

It will be initially for SH.  If it works out, it can be generalized so that
other targets can benefit from it, too.


[Bug target/66224] PowerPC _GLIBCXX_READ_MEM_BARRIER too weak

2015-05-22 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66224

--- Comment #4 from David Edelsohn dje at gcc dot gnu.org ---
Author: dje
Date: Fri May 22 13:02:34 2015
New Revision: 223564

URL: https://gcc.gnu.org/viewcvs?rev=223564root=gccview=rev
Log:
PR target/66224
* config/cpu/powerpc/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER):
Don't use isync. Use lwsync if available.

Modified:
branches/gcc-4_9-branch/libstdc++-v3/ChangeLog
branches/gcc-4_9-branch/libstdc++-v3/config/cpu/powerpc/atomic_word.h


[Bug middle-end/66253] [6 Regression] 459.GemsFDTD in SPEC CPU 2006 is miscompiled

2015-05-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66253

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||matz at gcc dot gnu.org

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Probably related to PR66251 aka strided store support.


[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215

--- Comment #16 from Jakub Jelinek jakub at gcc dot gnu.org ---
The function I've mentioned has:
(note 1 0 3 NOTE_INSN_DELETED)
(note 3 1 12 [bb 2] NOTE_INSN_BASIC_BLOCK)
(note 12 3 2 NOTE_INSN_PROLOGUE_END)
(note 2 12 5 NOTE_INSN_FUNCTION_BEG)
(barrier 5 2 8)
(note 8 5 0 NOTE_INSN_DELETED)
(at least in my somewhat older trunk version).
I can't think of anything simpler than that, because if the function isn't
noreturn, it shall have at least a return insn at the end, and if it is
noreturn, but doesn't have __builtin_unreachable () in it, there should be
either an endless loop (so some jump_insn), or noreturn call (call_insn).
Though, thinking about it, if you only have notes at the beginning and then
some CODE_LABEL, adding the nops after the CODE_LABEL would result in running
the nops not just when entering the function the first time, but more often.
Thus, I'd suggest maybe:
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
  if (active_insn_p (insn)
  || BARRIER_P (insn)
  || LABEL_P (insn))
break;
Thus, put the nops before first of active insns, barrier (that one for the
__builtin_unreachable () case) and the last one for e.g.:
void
baz (volatile unsigned int *i)
{
  for (;;)
(*i)++;
}
where I guess hotpatching wouldn't really like to see this as running the
function many times.


[Bug rtl-optimization/56590] Replace auto-inc-dec pass with generic address mode selection pass

2015-05-22 Thread olegendo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56590

--- Comment #3 from Oleg Endo olegendo at gcc dot gnu.org ---
There is a GSoC 2015 project which will try to address the AMS problem.
https://www.google-melange.com/gsoc/project/details/google/gsoc2015/erikvarga/5693417237512192

It will be initially for SH.  If it works out, it can be generalized so that
other targets can benefit from it, too.


[Bug rtl-optimization/50749] Auto-inc-dec does not find subsequent contiguous mem accesses

2015-05-22 Thread olegendo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50749

--- Comment #19 from Oleg Endo olegendo at gcc dot gnu.org ---
There is a GSoC 2015 project which will try to address the AMS problem.
https://www.google-melange.com/gsoc/project/details/google/gsoc2015/erikvarga/5693417237512192

It will be initially for SH.  If it works out, it can be generalized so that
other targets can benefit from it, too.


[Bug rtl-optimization/42612] post-increment addressing not used

2015-05-22 Thread olegendo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42612

--- Comment #5 from Oleg Endo olegendo at gcc dot gnu.org ---
There is a GSoC 2015 project which will try to address the AMS problem.
https://www.google-melange.com/gsoc/project/details/google/gsoc2015/erikvarga/5693417237512192

It will be initially for SH.  If it works out, it can be generalized so that
other targets can benefit from it, too.


[Bug target/65491] [aarch64] ICE: in emit_move_insn, at expr.c:3609

2015-05-22 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65491

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||6.0
 Resolution|--- |FIXED

--- Comment #4 from ktkachov at gcc dot gnu.org ---
Fixed on trunk. Since this has been failing on all release branches, this is
not a regression fix, so no backporting


[Bug c++/65598] Fix column location for 'explicit'

2015-05-22 Thread paolo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65598

--- Comment #6 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org ---
Author: paolo
Date: Fri May 22 14:14:38 2015
New Revision: 223576

URL: https://gcc.gnu.org/viewcvs?rev=223576root=gccview=rev
Log:
/cp
2015-05-22  Paolo Carlini  paolo.carl...@oracle.com

PR c++/65598
* decl.c (grokdeclarator): Use the correct location in error
messages about 'explicit'.

/testsuite
2015-05-22  Paolo Carlini  paolo.carl...@oracle.com

PR c++/65598
* g++.dg/cpp0x/explicit9.C: New.
* g++.dg/cpp0x/explicit8.C: Check the locations too.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/explicit9.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/explicit8.C


[Bug middle-end/66253] [6 Regression] 459.GemsFDTD in SPEC CPU 2006 is miscompiled

2015-05-22 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66253

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com ---
(In reply to Richard Biener from comment #1)
 Probably related to PR66251 aka strided store support.

It is caused by r223486.


[Bug c++/61198] Crash when selecting specializations through aliases.

2015-05-22 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61198

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||galbramc at mit dot edu

--- Comment #9 from Paolo Carlini paolo.carlini at oracle dot com ---
*** Bug 65764 has been marked as a duplicate of this bug. ***


[Bug middle-end/66253] [6 Regression] 459.GemsFDTD in SPEC CPU 2006 is miscompiled

2015-05-22 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66253

--- Comment #3 from Michael Matz matz at gcc dot gnu.org ---
Can you check if the patch at
  https://gcc.gnu.org/ml/gcc-patches/2015-05/msg02133.html
helps also gemsfdtd?


[Bug c++/65764] internal compiler error: in retrieve_specialization, at cp/pt.c:1048

2015-05-22 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65764

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
Dup.

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


[Bug target/66195] Optimize _GLIBCXX_GUARD_TEST_AND_ACQUIRE and _GLIBCXX_GUARD_SET_AND_RELEASE for PowerPC

2015-05-22 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66195

David Edelsohn dje at gcc dot gnu.org changed:

   What|Removed |Added

URL||https://gcc.gnu.org/ml/gcc-
   ||patches/2015-05/msg02092.ht
   ||ml

--- Comment #2 from David Edelsohn dje at gcc dot gnu.org ---
Ramana's patch to cpu/generic/atomic_word.h addresses this.
https://gcc.gnu.org/ml/gcc-patches/2015-05/msg02092.html


[Bug tree-optimization/66142] Loop is not vectorized because not sufficient support for GOMP_SIMD_LANE

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66142

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
As for the FRE (actually SCCVN) issue, seems this affects more than
GOMP_SIMD_LANE, seems there is insufficient canonicalization of the references
performed by SCCVN, so the same references, but in slightly different form,
aren't considered the same.
Please see e.g.
struct A { float x, y; };
struct B { struct A u, v; };
void bar (struct A *);

float
f1 (struct B *x, int y)
{
  struct A p;
  p.x = 1.0f;
  p.y = 2.0f;
  struct A *q = x[y].u;
  *q = p;
  x[y].v.x = 3.0f;
  x[y].v.y = 4.0f;
  float f = x[y].u.x + x[y].u.y + x[y].v.x + x[y].v.y;
  bar (p);
  return f;
}

float
f2 (struct B *x, int y)
{
  struct A p;
  p.x = 1.0f;
  p.y = 2.0f;
  x[y].u = p;
  x[y].v.x = 3.0f;
  x[y].v.y = 4.0f;
  float f = x[y].u.x + x[y].u.y + x[y].v.x + x[y].v.y;
  bar (p);
  return f;
}

float
f3 (struct B *x, int y)
{
  struct A p;
  p.x = 1.0f;
  p.y = 2.0f;
  struct A *q = x[y].u;
  __builtin_memcpy (q, p.x, sizeof (float));
  __builtin_memcpy (q-y, p.y, sizeof (float));
  *q = p;
  x[y].v.x = 3.0f;
  x[y].v.y = 4.0f;
  float f = x[y].u.x + x[y].u.y + x[y].v.x + x[y].v.y;
  bar (p);
  return f;
}

float
f4 (struct B *x, int y)
{
  struct A p;
  p.x = 1.0f;
  p.y = 2.0f;
  __builtin_memcpy (x[y].u.x, p.x, sizeof (float));
  __builtin_memcpy (x[y].u.y, p.y, sizeof (float));
  x[y].v.x = 3.0f;
  x[y].v.y = 4.0f;
  float f = x[y].u.x + x[y].u.y + x[y].v.x + x[y].v.y;
  bar (p);
  return f;
}

at -O2, FRE is able to optimize f2 and f4, but not f1 and f3, despite all 4
functions doing the same thing.


[Bug c++/65598] Fix column location for 'explicit'

2015-05-22 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65598

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot 
gnu.org

--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com ---
Fixed.


[Bug target/65491] [aarch64] ICE: in emit_move_insn, at expr.c:3609

2015-05-22 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65491

--- Comment #3 from ktkachov at gcc dot gnu.org ---
Author: ktkachov
Date: Fri May 22 14:36:27 2015
New Revision: 223577

URL: https://gcc.gnu.org/viewcvs?rev=223577root=gccview=rev
Log:
[AArch64] PR target/65491: Classify V1TF vectors as AAPCS64 short vectors
rather than composite types

PR target/65491
* config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
(aarch64_composite_type_p): Return false if given type and mode are
for a short vector.

PR target/65491
* gcc.target/aarch64/pr65491_1.c: New test.
* gcc.target/aarch64/aapcs64/type-def.h (vlf1_t): New typedef.
* gcc.target/aarch64/aapcs64/func-ret-1.c: Add test for vlf1_t.

Added:
trunk/gcc/testsuite/gcc.target/aarch64/pr65491_1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/aarch64/aarch64.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-1.c
trunk/gcc/testsuite/gcc.target/aarch64/aapcs64/type-def.h


[Bug c++/65750] [4.9/5 Regression] misinterpret in a virtual member function with a C++11 style function signature

2015-05-22 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65750

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||paolo.carlini at oracle dot com

--- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com ---
Out of curiosity, what happened to the work linked in Comment #5? I see an Ok
and then nothing more?


[Bug middle-end/66253] [6 Regression] 459.GemsFDTD in SPEC CPU 2006 is miscompiled

2015-05-22 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66253

--- Comment #4 from H.J. Lu hjl.tools at gmail dot com ---
(In reply to Michael Matz from comment #3)
 Can you check if the patch at
   https://gcc.gnu.org/ml/gcc-patches/2015-05/msg02133.html
 helps also gemsfdtd?

I tried and I still got

Running Benchmarks
  Running 459.GemsFDTD ref peak lnx32e-gcc default

*** Miscompare of sphere_td.nft; for details see


[Bug middle-end/66253] [6 Regression] 459.GemsFDTD in SPEC CPU 2006 is miscompiled

2015-05-22 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66253

Michael Matz matz at gcc dot gnu.org changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |matz at gcc dot gnu.org

--- Comment #6 from Michael Matz matz at gcc dot gnu.org ---
hence, mine


[Bug tree-optimization/48052] loop not vectorized if index is unsigned int

2015-05-22 Thread hiraditya at msn dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48052

--- Comment #13 from AK hiraditya at msn dot com ---
We have an updated patch that works for both the cases.
https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01991.html


[Bug c++/65815] brace elision doesn't work in NSDMI

2015-05-22 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65815

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

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


[Bug libstdc++/66017] Undefined behaviour in std::setlong long

2015-05-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66017

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-05-22
   Assignee|unassigned at gcc dot gnu.org  |redi at gcc dot gnu.org
 Ever confirmed|0   |1


[Bug middle-end/66253] [6 Regression] 459.GemsFDTD in SPEC CPU 2006 is miscompiled

2015-05-22 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66253

--- Comment #5 from Michael Matz matz at gcc dot gnu.org ---
(In reply to H.J. Lu from comment #4)
 I tried and I still got
 
 Running Benchmarks
   Running 459.GemsFDTD ref peak lnx32e-gcc default
 
 *** Miscompare of sphere_td.nft; for details see

Hmpf, okay need to analyze it myself then :-/


[Bug c/66240] RFE: extend -falign-xyz syntax

2015-05-22 Thread josh at joshtriplett dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66240

Josh Triplett josh at joshtriplett dot org changed:

   What|Removed |Added

 CC||josh at joshtriplett dot org

--- Comment #1 from Josh Triplett josh at joshtriplett dot org ---
Another alternative discussed in that thread, which seems near-ideal: align
functions to a given size (for instance, 64 bytes), pack them into that size if
they fit, but avoid splitting a function across that boundary unless it's
larger than that boundary.  (That would require the compiler or assembler to
know the size of each function.)


[Bug libstdc++/53477] pretty printer fails with: Python Exception type 'exceptions.IndexError' list index out of range

2015-05-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53477

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2015-05-22
 Ever confirmed|0   |1

--- Comment #21 from Jonathan Wakely redi at gcc dot gnu.org ---
If this is still a problem please provide a complete testcase that reproduces
it (one that actually links!)


[Bug fortran/61831] [4.9/ 5 Regression] runtime error: pointer being freed was not allocated

2015-05-22 Thread mikael at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61831

Mikael Morin mikael at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||patch
 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |mikael at gcc dot 
gnu.org

--- Comment #47 from Mikael Morin mikael at gcc dot gnu.org ---
Patch posted: https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01491.html


[Bug c++/66255] New: ice in retrieve_specialization

2015-05-22 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66255

Bug ID: 66255
   Summary: ice in retrieve_specialization
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

Created attachment 35601
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35601action=edit
gzipped C++ source code

The attached code, when compiled by gcc trunk dated 20150520 and with
flags -O2 -march=native  -std=c++0x on a x86_64 box, says this:

/usr/include/qt5/QtCore/qglobalstatic.h:123:1: internal compiler error: in
retrieve_specialization, at cp/pt.c:1065
 {
  ^
0x6344fa retrieve_specialization
../../src/trunk/gcc/cp/pt.c:1065
0x65a169 tsubst_decl
../../src/trunk/gcc/cp/pt.c:11290
0x645c8e tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/trunk/gcc/cp/pt.c:11812
0x678268 instantiate_class_template_1
../../src/trunk/gcc/cp/pt.c:9400


[Bug middle-end/66148] [6 regression] build/genpreds: Internal error: abort in choose_enum_order, at genpreds.c:1006

2015-05-22 Thread danglin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66148

John David Anglin danglin at gcc dot gnu.org changed:

   What|Removed |Added

 CC||thopre01 at gcc dot gnu.org

--- Comment #3 from John David Anglin danglin at gcc dot gnu.org ---
This patch introduces this difference in assembly code of genpreds.c:

-   ldil L'-822083584,%r20
-   depdi 0,0+32-1,32,%r20
-   and %r22,%r20,%r20
-   cmpb,* %r0,%r20,L$0361
-   shladd,l %r31,3,%r28,%r20
+   ldil L'-822083584,%r21
+   and %r22,%r21,%r21
+   cmpb,* %r0,%r21,L$0361
+   shladd,l %r31,3,%r28,%r21

The depdi instruction clearing the most significant of register %r20
is no longer generated.  The 32-bit immediate value loaded by the ldil
instruction is sign extended to 64 bits.


  1   2   >