[Bug tree-optimization/71521] [6 Regression] Regression in GCC-7.0.0's optimizer

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71521

--- Comment #7 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 07:30:04 2016
New Revision: 238077

URL: https://gcc.gnu.org/viewcvs?rev=238077&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-05-25  Richard Biener  

PR tree-optimization/71264
* tree-vect-stmts.c (vect_init_vector): Properly deal with
vector type val.

* gcc.dg/vect/pr71264.c: New testcase.

2016-06-07  Richard Biener  

PR middle-end/71423
* match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
for signed ops.

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

2016-06-14  Richard Biener  

PR tree-optimization/71521
* tree-vrp.c (extract_range_from_binary_expr_1): Guard
division int_const_binop against zero divisor.

* gcc.dg/tree-ssa/vrp101.c: New testcase.

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-06-14  Richard Biener  

PR tree-optimization/71522
* tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
copying into float copying.

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

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71423.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71522.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/vrp101.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/vect/pr71264.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/match.pd
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/tree-ssa.c
branches/gcc-6-branch/gcc/tree-vect-stmts.c
branches/gcc-6-branch/gcc/tree-vrp.c

[Bug tree-optimization/71423] [5/6 Regression] wrong code at -Os and above on x86_64-linux-gnu

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71423

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 07:30:04 2016
New Revision: 238077

URL: https://gcc.gnu.org/viewcvs?rev=238077&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-05-25  Richard Biener  

PR tree-optimization/71264
* tree-vect-stmts.c (vect_init_vector): Properly deal with
vector type val.

* gcc.dg/vect/pr71264.c: New testcase.

2016-06-07  Richard Biener  

PR middle-end/71423
* match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
for signed ops.

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

2016-06-14  Richard Biener  

PR tree-optimization/71521
* tree-vrp.c (extract_range_from_binary_expr_1): Guard
division int_const_binop against zero divisor.

* gcc.dg/tree-ssa/vrp101.c: New testcase.

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-06-14  Richard Biener  

PR tree-optimization/71522
* tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
copying into float copying.

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

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71423.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71522.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/vrp101.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/vect/pr71264.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/match.pd
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/tree-ssa.c
branches/gcc-6-branch/gcc/tree-vect-stmts.c
branches/gcc-6-branch/gcc/tree-vrp.c

[Bug tree-optimization/71452] [4.9/5/6 Regression] Wrong optimization of stores to _Bool via char*

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71452

--- Comment #4 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 07:30:04 2016
New Revision: 238077

URL: https://gcc.gnu.org/viewcvs?rev=238077&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-05-25  Richard Biener  

PR tree-optimization/71264
* tree-vect-stmts.c (vect_init_vector): Properly deal with
vector type val.

* gcc.dg/vect/pr71264.c: New testcase.

2016-06-07  Richard Biener  

PR middle-end/71423
* match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
for signed ops.

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

2016-06-14  Richard Biener  

PR tree-optimization/71521
* tree-vrp.c (extract_range_from_binary_expr_1): Guard
division int_const_binop against zero divisor.

* gcc.dg/tree-ssa/vrp101.c: New testcase.

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-06-14  Richard Biener  

PR tree-optimization/71522
* tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
copying into float copying.

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

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71423.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71522.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/vrp101.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/vect/pr71264.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/match.pd
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/tree-ssa.c
branches/gcc-6-branch/gcc/tree-vect-stmts.c
branches/gcc-6-branch/gcc/tree-vrp.c

[Bug tree-optimization/71264] [4.9/5 Regression] ICE in convert_move

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71264

--- Comment #14 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 07:30:04 2016
New Revision: 238077

URL: https://gcc.gnu.org/viewcvs?rev=238077&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-05-25  Richard Biener  

PR tree-optimization/71264
* tree-vect-stmts.c (vect_init_vector): Properly deal with
vector type val.

* gcc.dg/vect/pr71264.c: New testcase.

2016-06-07  Richard Biener  

PR middle-end/71423
* match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
for signed ops.

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

2016-06-14  Richard Biener  

PR tree-optimization/71521
* tree-vrp.c (extract_range_from_binary_expr_1): Guard
division int_const_binop against zero divisor.

* gcc.dg/tree-ssa/vrp101.c: New testcase.

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-06-14  Richard Biener  

PR tree-optimization/71522
* tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
copying into float copying.

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

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71423.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71522.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/vrp101.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/vect/pr71264.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/match.pd
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/tree-ssa.c
branches/gcc-6-branch/gcc/tree-vect-stmts.c
branches/gcc-6-branch/gcc/tree-vrp.c

[Bug tree-optimization/71522] [5/6 Regression] Wrong optimization of memcpy through a var of type long double

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71522

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 07:30:04 2016
New Revision: 238077

URL: https://gcc.gnu.org/viewcvs?rev=238077&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-05-25  Richard Biener  

PR tree-optimization/71264
* tree-vect-stmts.c (vect_init_vector): Properly deal with
vector type val.

* gcc.dg/vect/pr71264.c: New testcase.

2016-06-07  Richard Biener  

PR middle-end/71423
* match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
for signed ops.

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

2016-06-14  Richard Biener  

PR tree-optimization/71521
* tree-vrp.c (extract_range_from_binary_expr_1): Guard
division int_const_binop against zero divisor.

* gcc.dg/tree-ssa/vrp101.c: New testcase.

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-06-14  Richard Biener  

PR tree-optimization/71522
* tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
copying into float copying.

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

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71423.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr71522.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/vrp101.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/vect/pr71264.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/match.pd
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/tree-ssa.c
branches/gcc-6-branch/gcc/tree-vect-stmts.c
branches/gcc-6-branch/gcc/tree-vrp.c

[Bug tree-optimization/71521] [6 Regression] Regression in GCC-7.0.0's optimizer

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71521

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #8 from Richard Biener  ---
Fixed.

[Bug c++/71786] Constructor never called

2016-07-07 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71786

Marc Glisse  changed:

   What|Removed |Added

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

--- Comment #3 from Marc Glisse  ---
The second A is constructed by a copy/move constructor, which is generated by
default. You need to write one yourself and register the pointer there.

[Bug c++/71774] [5/6/7 regression] Bogus "is protected" error when list-initializing a base class with a defaulted protected constructor and a virtual function

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71774

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |5.5

[Bug c++/71728] [5/6/7 Regression] ICE with goto in statement-expression inside a condition

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71728

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |5.5

[Bug fortran/71067] [4.9/5/6/7 Regression] ICE on data initialization with insufficient value

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71067

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug c++/63151] [5/6/7 regression] Accessibility error when brace-constructing base class with protected defaulted constructor and member variable

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63151

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |5.5

[Bug c++/69223] [5/6/7 regression] ICE with polymorphic lambda

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69223

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |5.5

[Bug fortran/71688] [4.9/5/6/7 Regression] ICE in analyze, at cgraphunit.c:632 with -fcoarray=lib

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71688

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug fortran/71705] [4.9/5/6/7 Regression] ICE in lower_omp_target, at omp-low.c:16136

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71705

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug fortran/71703] [4.9/5/6/7 Regression] ICE in wide_int_to_tree, at tree.c:1488

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71703

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug fortran/71066] [4.9/5/6/7 Regression] ICE in set_loop_bounds, at fortran/trans-array.c:4680

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71066

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug fortran/71764] [4.9/5/6/7 Regression] ICE in gfc_trans_structure_assign

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71764

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug fortran/71723] [4.9/5/6/7 Regression] ICE with attempted pointer initialization

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71723

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug fortran/71706] [6/7 Regression] ICE on using sync images with integer(kind<>4), with -fcoarray=lib -fcheck=bounds

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71706

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |6.2

[Bug middle-end/71473] [5/6/7 Regression] cilkplus sum reducer ICE

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71473

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |5.5

[Bug fortran/71758] [7 Regression] ICE in verify_gimple_in_cfg, at tree-cfg.c:5212

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71758

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |7.0

[Bug c++/71710] [7 Regression] ICE on valid C++11 code with decltype and alias template: in lookup_member, at cp/search.c:1255

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71710

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |7.0

[Bug c++/71718] [6/7 Regression] ICE on erroneous recursive template error printing

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71718

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |6.2

[Bug libstdc++/60621] std::vector::emplace_back generates massively more code than push_back

2016-07-07 Thread marc at kdab dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60621

--- Comment #7 from marc at kdab dot com ---
Retesting with GCC 6.1, it looks better now:

  $ g++ -O2 -o emplace-vs-push_back{.pb,.cpp}
  $ g++ -O2 -o emplace-vs-push_back{.eb,.cpp} -DEMPLACE_BACK
  $ strip emplace-vs-push_back.*
  $ size emplace-vs-push_back.*
   textdata bss dec hex filename
   4474 680   85162142a emplace-vs-push_back.eb
   4830 680   85518158e emplace-vs-push_back.nt
   5083 656   857471673 emplace-vs-push_back.pb

somewhat at the expense of pessimising push_back(), which used to be 500b
smaller in Comment 3, but at least the relation between emplace_back and
push_back, and between emplace_back(char[2], char[2], char[2]) and
emplace_back(std::string, std::string, std::string) are now as expected.

[Bug c++/70822] [6 Regression] bogus "error: lvalue required as unary ‘&’ operand" with C++14 parenthesized SCOPE_REF

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70822

Richard Biener  changed:

   What|Removed |Added

   Keywords||rejects-valid
   Priority|P3  |P2
  Known to fail||6.1.0

[Bug tree-optimization/70916] [6 Regression] gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check"

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70916

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2
 Status|NEW |RESOLVED
  Known to work||6.2.0
 Resolution|--- |FIXED
  Known to fail||6.1.0

--- Comment #10 from Richard Biener  ---
Yeah, better not backport that one.

[Bug c++/71784] crash on on ref-qual's and templates

2016-07-07 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71784

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #1 from Martin Liška  ---
Can you please attach a test-case that produces a crash, I tried to follow the
instruction in the attaches test-case, but it's not clear to me.

Thanks

[Bug middle-end/71789] New: atomic_int incompatibility warning between C and C++ [-Wlto-type-mismatch]

2016-07-07 Thread patrick.pelissier at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71789

Bug ID: 71789
   Summary: atomic_int incompatibility warning between C and C++
[-Wlto-type-mismatch]
   Product: gcc
   Version: 6.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: patrick.pelissier at gmail dot com
  Target Milestone: ---

Trying to use a C library within a C++ program, I get some errors due to the
header of the C library including stdatomic.h
Following the advice of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932 I
tried to patch the header with:
#ifdef __cplusplus
#include 
using namespace std;
#else
#include 
#endif
However when I link the final application with LTO, I get some warning.

It can be shown by the following example:

c.c:
#include "c.h"
bool f(atomic_int b) {
  return b == 0;
}
c.cpp:
#include "c.h"
int main(void) {
  bool b = f(ATOMIC_VAR_INIT(0));
  return b ? 0 : 1;
}
c.h:
#ifndef __C_H
#define __C_H
#include 
#ifdef __cplusplus
#include 
using namespace std;
#else
#include 
#endif
#ifdef __cplusplus
extern "C" {
#endif
extern bool f(atomic_int n);
#ifdef __cplusplus
}
#endif
#endif

And the used compilation command:
$ gcc -c -flto -O2 -Wall -W -std=c11 c.c -o c1.o && g++ -c -flto -O2 -Wall -W
-std=c++11 c.cpp -o c2.o && g++ -flto -O2 -Wall c1.o c2.o

gives the following warning:

c.h:18:13: attention : type of ‘f’ does not match original declaration
[-Wlto-type-mismatch]
 extern bool f(atomic_int n);
 ^
c.c:3:6: note : type mismatch in parameter 1
 bool f(atomic_int b)
  ^
/opt/gcc/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/stdatomic.h:46:21: note :
type ‘atomic_int’ should match type ‘struct atomic_int’
 typedef _Atomic int atomic_int;
 ^
/opt/gcc/include/c++/6.1.0/atomic:794:25: note : the incompatible type is
defined here
   typedef atomic   atomic_int;
 ^
c.c:3:6: note : ‘f’ was previously declared here
 bool f(atomic_int b)
  ^
c.c:3:6: note : code may be misoptimized unless -fno-strict-aliasing is used

$ gcc --version
gcc (GCC) 6.1.0

[Bug c++/71790] New: C++ attributes on expression statements result in compile error

2016-07-07 Thread tcorbat at hsr dot ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71790

Bug ID: 71790
   Summary: C++ attributes on expression statements result in
compile error
   Product: gcc
   Version: 6.1.1
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tcorbat at hsr dot ch
  Target Milestone: ---

I encounter problems when using C++ attributes on expression statements while
compiling with GCC. For example:

int main(int argc, char **argv) {
  int i{};
  [[arbitrary_attribute]]
  i++;
}

I get the following error:
../main.cpp: In function ‘int main(int, char**)’:
../main.cpp:3:3: error: expected identifier before ‘[’ token
  [[arbitrary_attribute]]
   ^

I would expect the compiler to issue a warning but otherwise ignore the unknown
attribute.

[Bug target/71559] ICE in ix86_fp_cmp_code_to_pcmp_immediate, at config/i386/i386.c:23042 (KNL/AVX512)

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71559

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #21 from Jakub Jelinek  ---
Thus this PR is fixed and the other one needs to deal with all the spots where
the comparisons instructions are chosen in the backend.

[Bug ipa/71633] [7 regression][CHKP] internal compiler error: in inline_call

2016-07-07 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71633

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-07
 CC||marxin at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Martin Liška  ---
Confirmed.

[Bug c++/71789] atomic_int incompatibility warning between C and C++ [-Wlto-type-mismatch]

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71789

Richard Biener  changed:

   What|Removed |Added

   Keywords||lto
 CC||jason at gcc dot gnu.org,
   ||jsm28 at gcc dot gnu.org
  Component|middle-end  |c++

--- Comment #1 from Richard Biener  ---
Well, clearly C++ atomic_int (aka atomic) and C atomic_int (aka _Atomic
int)
do not inter-operate.

It might be possible that you are lucky for the x86_64 ABI but certainly
TBAA will not treat things like aggregate copies of C++ atomic_int as
possibly clobbering a C _Atomic int.

I'm not sure what standards bodies thought on this issue but it looks hard
to apply a workaround to LTO (the types would need to share TYPE_CANONICAL
which is impossible at the moment as one is a plain INTEGER_TYPE and one
is a RECORD_TYPE).

[Bug middle-end/71785] Computed gotos are mostly optimized away

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71785

Richard Biener  changed:

   What|Removed |Added

   Keywords||missed-optimization
  Component|c   |middle-end

--- Comment #4 from Richard Biener  ---
Note we factor computed gotos to reduce CFG complexity but late on RTL there is
some un-factoring again.

[Bug ipa/71624] [6/7 regression][CHKP] internal compiler error: in duplicate_thunk_for_node

2016-07-07 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71624

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-07
 CC||marxin at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Martin Liška  ---
Confirmed.

[Bug fortran/71783] [5/6/7 Regression ] ICE on valid code in gimplify_var_or_parm_decl at gimplify.c:1801

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71783

--- Comment #2 from Richard Biener  ---
As the comment says the FE is failing to put 'cline' into a BIND_EXPR.  It has
a
'.cline' but not 'cline'.

[Bug fortran/71782] [5/6/7 Regression] internal compiler error: in gimplify_var_or_parm_decl

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71782

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P4

[Bug sanitizer/70342] g++ -fsanitize=undefined never finishes compiling (>24h) in qtxmlpatterns test suite

2016-07-07 Thread marc at kdab dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70342

marc at kdab dot com changed:

   What|Removed |Added

 Status|RESOLVED|VERIFIED

--- Comment #13 from marc at kdab dot com ---
confirmed fixed in gcc 6.1.1 20160624

[Bug tree-optimization/71575] [4.9/6/7 Regression] [graphite] internal compiler error: in copy_cond_phi_nodes, at graphite-isl-ast-to-gimple.c:2500

2016-07-07 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71575

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-07
 CC||marxin at gcc dot gnu.org
   Target Milestone|6.2 |4.9.4
Summary|[6/7 Regression] [graphite] |[4.9/6/7 Regression]
   |internal compiler error: in |[graphite] internal
   |copy_cond_phi_nodes, at |compiler error: in
   |graphite-isl-ast-to-gimple. |copy_cond_phi_nodes, at
   |c:2500  |graphite-isl-ast-to-gimple.
   ||c:2500
 Ever confirmed|0   |1

--- Comment #2 from Martin Liška  ---
Confirmed, I'm adding also GCC 4.9 branches where it:
sorry, unimplemented: Graphite loop optimizations cannot be used

[Bug target/71791] New: [ARM] missed the implementation of ACLE intrinsics vminnm_f32/vminnmq_f32/vmaxnm_f32/vmaxnmq_f32

2016-07-07 Thread jiwang at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71791

Bug ID: 71791
   Summary: [ARM] missed the implementation of ACLE intrinsics
vminnm_f32/vminnmq_f32/vmaxnm_f32/vmaxnmq_f32
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Keywords: xfail
  Severity: minor
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jiwang at gcc dot gnu.org
  Target Milestone: ---
Target: arm*

The are listed on at least ACLE 2.0 for ARM32, but GCC ARM port hasn't
implemented them.

There is backend pattern for them fmax/fmin but they are standard names without
"neon_" prefix, the current neon intrinsic builtins .def for ARM seems force
the prefix to be with "neon_", so there might needs minor tweak on the macro
expand.

[Bug c++/71792] New: deducing type from bitfield leads to overflow

2016-07-07 Thread vrzubov at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71792

Bug ID: 71792
   Summary: deducing type from bitfield leads to overflow
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vrzubov at gmail dot com
  Target Milestone: ---

Created attachment 38846
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38846&action=edit
whole example, compiles with --std=c++11

class some_class
{
public:
  unsigned int nc0 : 1;
};

some_class sm;

// gives infinity cycle due to overflow of nc0:1 , in template case;
for (auto i = sm.nc0; i < 10; i++) 


whole example is attached
check with --std=c++11, in g++4.8, g++4.9, g++5, g++6

[Bug c++/71793] New: Volatile local variable passed by value is (wrongly?) optimised away, but the containing loop is not

2016-07-07 Thread db0451 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71793

Bug ID: 71793
   Summary: Volatile local variable passed by value is (wrongly?)
optimised away, but the containing loop is not
   Product: gcc
   Version: 5.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: db0451 at gmail dot com
  Target Milestone: ---

Here's the original SO thread with more info and/or meandering pondering:
http://stackoverflow.com/questions/38235112/why-is-a-volatile-local-variable-optimised-differently-from-a-volatile-argument

g++ seems to break in a simple situation involving a function argument passed
by value and declared volatile, wherein it acts differently than if such
variable is declared in-body. In the former case, it elides volatile reads.

#include 

void f(void *const p, std::size_t n)
{
unsigned char *y = static_cast(p);
volatile unsigned char const x = 42;

while (n--) {
*y++ = x;
}
}

void g(void *const p, std::size_t n, volatile unsigned char const x)
{
unsigned char *y = static_cast(p);

while (n--) {
*y++ = x;
}
}

void h(void *const p, std::size_t n, volatile unsigned char const &x)
{
unsigned char *y = static_cast(p);

while (n--) {
*y++ = x;
}
}

int main(int, char **)
{
int y[1000];
f(&y, sizeof y);
volatile unsigned char const x{99};
g(&y, sizeof y, x);
h(&y, sizeof y, x);
}

=> ASM

main:
.LFB3:
.cfi_startproc

# f()
movb$42, -1(%rsp)
movl$4000, %eax
.p2align 4,,10
.p2align 3
.L21:
subq$1, %rax
movzbl  -1(%rsp), %edx
jne .L21

# x = 99
movb$99, -2(%rsp)
movzbl  -2(%rsp), %eax

# g()
movl$4000, %eax
.p2align 4,,10
.p2align 3
.L22:
subq$1, %rax
jne .L22

# h()
movl$4000, %eax
.p2align 4,,10
.p2align 3
.L23:
subq$1, %rax
movzbl  -2(%rsp), %edx
jne .L23

Is g() non-conforming here because it elides reads to a volatile variable? That
might represent a hardware register whose polling has side-effects, etc.

And either way, how is it that the loop body can be totally elided, rightly or
not - but the loop itself still executes? (It's like I'm back programming waits
on a CPC 464! ;-)

thanks

[Bug middle-end/71785] Computed gotos are mostly optimized away

2016-07-07 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71785

--- Comment #5 from Segher Boessenkool  ---
Created attachment 38847
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38847&action=edit
proposed patch to bb-reorder

Proposed patch.  Works for the testcase in here without removing the
8 successors limitation, but that is needed in general.

[Bug c++/71784] crash on on ref-qual's and templates

2016-07-07 Thread mct_ancs at yahoo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71784

--- Comment #2 from Ela  ---
Created attachment 38848
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38848&action=edit
*.cc file producing the crash

[Bug c++/71784] crash on on ref-qual's and templates

2016-07-07 Thread mct_ancs at yahoo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71784

--- Comment #3 from Ela  ---
Created attachment 38849
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38849&action=edit
the compiler complaint

[Bug c++/71784] crash on on ref-qual's and templates

2016-07-07 Thread mct_ancs at yahoo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71784

--- Comment #4 from Ela  ---
Created attachment 38850
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38850&action=edit
code dump

[Bug c++/71784] crash on on ref-qual's and templates

2016-07-07 Thread mct_ancs at yahoo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71784

--- Comment #5 from Ela  ---
gcc = gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)

[Bug c++/71784] crash on on ref-qual's and templates

2016-07-07 Thread mct_ancs at yahoo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71784

--- Comment #6 from Ela  ---
- ... it doesn't matter (or it does ?) if op's are first
  instantiated via template, or everything is in one file
  and instantiated "per-need" when they appear (used).

  (tested various versions and cannot remember now)

- in any case: it should work in the separate-compilation
  model, with files split in *.hh, *.cc, *.ie

[Bug c++/71789] atomic_int incompatibility warning between C and C++ [-Wlto-type-mismatch]

2016-07-07 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71789

--- Comment #2 from Jonathan Wakely  ---
The original intention of the C++ committee was that std::atomic_int would be
compatible with the corresponding C type, but that design was changed during
the C11 process when the _Atomic qualifier was added. They are distinct types
with no relation.

In libstdc++ we *try* to make them have the same size and alignment as the
corresponding C types, but there are bugs on (at least) x86.

[Bug target/71791] [ARM] missed the implementation of ACLE intrinsics vminnm_f32/vminnmq_f32/vmaxnm_f32/vmaxnmq_f32

2016-07-07 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71791

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-07
 CC||ktkachov at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from ktkachov at gcc dot gnu.org ---
Confirmed.

[Bug rtl-optimization/71793] Volatile local variable passed by value is (wrongly?) optimised away, but the containing loop is not

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71793

Richard Biener  changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-07
  Component|c++ |rtl-optimization
 Ever confirmed|0   |1
  Known to fail||5.4.0, 6.1.0

--- Comment #1 from Richard Biener  ---
As y is not used stores to it are eliminated in main().  I can confirm that
RTL optimizers somehow remove the volatile load from x from the inline copy
of g() which is because RTL expansion expands x as register copy for some
reason.

;; x.11_3 ={v} x;

(insn 19 18 0 (set (reg:QI 87 [ x.11_3 ])
(mem/v/c:QI (plus:DI (reg/f:DI 82 virtual-stack-vars)
(const_int -2 [0xfffe])) [0 x+0 S1 A16])) t.C:36 -1
 (nil))

;; x ={v} x.11_3;

(insn 20 19 0 (set (reg/v:QI 94 [ x ])
(reg:QI 87 [ x.11_3 ])) -1
 (nil))

;; Generating RTL for gimple basic block 5

;; x.7_10 ={v} x;

(insn 22 21 0 (set (reg:QI 90 [ x.7_10 ])
(reg/v:QI 94 [ x ])) t.C:18 -1
 (nil))

;; ivtmp_36 = ivtmp_22 + 18446744073709551615;

(insn 23 22 0 (parallel [
(set (reg:DI 92 [ ivtmp_22 ])
(plus:DI (reg:DI 92 [ ivtmp_22 ])
(const_int -1 [0x])))
(clobber (reg:CC 17 flags))
]) -1
 (nil))

[Bug libstdc++/71788] is_trivially_copy_constructible gives false for types with user defined destructors

2016-07-07 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71788

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #1 from Jonathan Wakely  ---
Your non-trivial destructor means that is_trivially_xxx_constructible is false,
because that trait is based on an expression that creates and destroys an
object.

That's by design, because simply asking whether the type *has* a trivial
constructor doesn't actually help, in typical generic code you want to know if
a particular operation is trivial.

[Bug target/71779] [5/6/7 regression] isl miscompiled with -mabi=ilp32

2016-07-07 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71779

Andreas Schwab  changed:

   What|Removed |Added

 CC||jgreenhalgh at gcc dot gnu.org

--- Comment #1 from Andreas Schwab  ---
bf29c577b9128551d76adc5b0331d375be49d7d3 is the first bad commit
commit bf29c577b9128551d76adc5b0331d375be49d7d3
Author: jgreenhalgh 
Date:   Tue Apr 29 13:46:23 2014 +

Remove PUSH_ARGS_REVERSED from the RTL expander.

gcc/

* calls.c (initialize_argument_information): Always treat
PUSH_ARGS_REVERSED as 1, simplify code accordingly.
(expand_call): Likewise.
(emit_library_call_calue_1): Likewise.
* expr.c (PUSH_ARGS_REVERSED): Do not define.
(emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
code accordingly.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209897
138bc75d-0d04-0410-961f-82ee72b054a4

[Bug tree-optimization/71423] [5 Regression] wrong code at -Os and above on x86_64-linux-gnu

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71423

--- Comment #7 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 10:33:01 2016
New Revision: 238084

URL: https://gcc.gnu.org/viewcvs?rev=238084&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-06-07  Richard Biener  

PR middle-end/71423
* match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
for signed ops.

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

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-06-14  Richard Biener  

PR tree-optimization/71522
* tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
copying into float copying.

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

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr71423.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr71522.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/match.pd
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-ssa.c

[Bug tree-optimization/71452] [4.9/5 Regression] Wrong optimization of stores to _Bool via char*

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71452

--- Comment #5 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 10:33:01 2016
New Revision: 238084

URL: https://gcc.gnu.org/viewcvs?rev=238084&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-06-07  Richard Biener  

PR middle-end/71423
* match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
for signed ops.

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

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-06-14  Richard Biener  

PR tree-optimization/71522
* tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
copying into float copying.

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

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr71423.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr71522.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/match.pd
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-ssa.c

[Bug tree-optimization/71522] [5 Regression] Wrong optimization of memcpy through a var of type long double

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71522

--- Comment #7 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 10:33:01 2016
New Revision: 238084

URL: https://gcc.gnu.org/viewcvs?rev=238084&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-06-07  Richard Biener  

PR middle-end/71423
* match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
for signed ops.

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

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-06-14  Richard Biener  

PR tree-optimization/71522
* tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
copying into float copying.

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

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr71423.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr71522.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/match.pd
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-ssa.c

[Bug tree-optimization/71423] [5 Regression] wrong code at -Os and above on x86_64-linux-gnu

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71423

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
  Known to fail||5.4.0

--- Comment #8 from Richard Biener  ---
Fixed.

[Bug c++/71739] [6/7 Regression] ICE on valid C++11 code: tree check: expected identifier_node, have tree_list in private_is_attribute_p, at tree.c:6080

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71739

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #6 from Jakub Jelinek  ---
Fixed.

[Bug libstdc++/71794] New: Std::array as an incomplete type in nested name specifier.

2016-07-07 Thread p.bednarski at outlook dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71794

Bug ID: 71794
   Summary: Std::array as an incomplete type in nested name
specifier.
   Product: gcc
   Version: 6.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: p.bednarski at outlook dot com
  Target Milestone: ---

Created attachment 38851
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38851&action=edit
Code that won't compile on GCC.

In code attached: MyContainer type works perfectly fine. std::vector works fine
as well.

Error message:
$ g++-6 -Wall -Wextra -Wpedantic --std=c++14  main.cpp 
main.cpp: In instantiation of ‘T foo() [with T = std::array]’:
main.cpp:39:31:   required from here
main.cpp:16:21: error: incomplete type ‘B >’ used in
nested name specifier
 return B::bar();
~^~

[Bug tree-optimization/71691] [6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (Floating point exception)

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71691

--- Comment #6 from Richard Biener  ---
So this is loop unswitching unswitching on a condition that is not always
executed
(i_48 != 0), it is guarded by e.3_30 != 0 (which is not invariant).  It's not
trivial to see the use of i_48 can be uninitialized and thus we have to
error conservatively.

[Bug libgcc/71744] Concurrently throwing exceptions is not scalable

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71744

--- Comment #9 from Jakub Jelinek  ---
Created attachment 38852
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38852&action=edit
gcc7-pr71744.patch

Untested patch for the old-style registry.  But as long as glibc still takes a
global lock it probably doesn't help that much.

[Bug middle-end/64516] [4.9/5/6 Regression] arm: wrong unaligned load generated

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64516

--- Comment #7 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 11:37:24 2016
New Revision: 238085

URL: https://gcc.gnu.org/viewcvs?rev=238085&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-06-13  Richard Biener  

PR middle-end/64516
* fold-const.c (fold_unary_loc): Preserve alignment when
folding a VIEW_CONVERT_EXPR into a MEM_REF.

* gcc.dg/align-3.c: New testcase.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.dg/align-3.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/fold-const.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c++/71794] Std::array as an incomplete type in nested name specifier.

2016-07-07 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71794

--- Comment #2 from Jonathan Wakely  ---
If you fix your partial specialization it works with all compilers:

template   /* correct type */
struct B>
{
  static std::array bar()
  {
  return std::array();
  }
};

[Bug c++/71794] Std::array as an incomplete type in nested name specifier.

2016-07-07 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71794

Jonathan Wakely  changed:

   What|Removed |Added

  Component|libstdc++   |c++

--- Comment #1 from Jonathan Wakely  ---
This is nothing to do with libstdc++, the problem is that you've using int
rather than std::size_t

using size_t = decltype(sizeof(0));

template
  struct array 
  {
 T data[N];
  };

template
struct MyContainer 
{
   T data[N];
};

template 
struct B;

template 
T foo()
{
return B::bar();
}

template 
struct B>
{
  static array bar()
  {
  return array();
  }
};

template 
struct B>
{
  static MyContainer bar()
  {
  return MyContainer();
  }
};

int main()
{
foo>(); // incomplete type
foo>();
}


foo> returns B> which doesn't match
your partial specialization of B>

Clang accepts this, but G++ and EDG reject it for the same reason.

[Bug ipa/71624] [6/7 regression][CHKP] internal compiler error: in duplicate_thunk_for_node

2016-07-07 Thread ienkovich at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71624

--- Comment #2 from Ilya Enkovich  ---
Author: ienkovich
Date: Thu Jul  7 11:45:11 2016
New Revision: 238086

URL: https://gcc.gnu.org/viewcvs?rev=238086&root=gcc&view=rev
Log:
gcc/

PR ipa/71624
* ipa-inline-analysis.c (compute_inline_parameters): Set
local.can_change_signature to false for intrumentation
thunk callees.

gcc/testsuite/

PR ipa/71624
* g++.dg/pr71624.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/pr71624.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-inline-analysis.c
trunk/gcc/testsuite/ChangeLog

[Bug c++/71784] [6/7 Regression] ICE on invalid code in push_access_scope, at cp/pt.c:229

2016-07-07 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71784

Martin Liška  changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-07
Summary|crash on on ref-qual's and  |[6/7 Regression] ICE on
   |templates   |invalid code in
   ||push_access_scope, at
   ||cp/pt.c:229
 Ever confirmed|0   |1

--- Comment #7 from Martin Liška  ---
Minimal test-case:

template  class A {
  template  A &&operator=(A &&)&;
  template  A &&operator=(A &&)&&;
}
template A < int >&&A < int >::operator= ( A &&

Same as the origin, it's obviously an invalid code.

g++ tc.cc
tc.cc:4:1: error: expected ‘;’ after class definition
 }
 ^
tc.cc:5:46: error: expected ‘,’ or ‘...’ at end of input
 template A < int >&&A < int >::operator= ( A &&
  ^~
tc.cc:5:46: error: expected ‘)’ at end of input
tc.cc:5:46: internal compiler error: in push_access_scope, at cp/pt.c:228
0x844593 push_access_scope
../../gcc/cp/pt.c:227
0x8a30de fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node*
const*, unsigned int, tree_node*, unification_kind_t, int, bool, bool)
../../gcc/cp/pt.c:17920
0x8afed3 get_bindings
../../gcc/cp/pt.c:20730
0x8b02f3 more_specialized_inst
../../gcc/cp/pt.c:20828
0x8b0427 most_specialized_instantiation(tree_node*)
../../gcc/cp/pt.c:20868
0x851b48 determine_specialization
../../gcc/cp/pt.c:2326
0x8544a4 check_explicit_specialization(tree_node*, tree_node*, int, int)
../../gcc/cp/pt.c:2947
0x81aa67 grokfndecl
../../gcc/cp/decl.c:8228
0x824464 grokdeclarator(cp_declarator const*, cp_decl_specifier_seq*,
decl_context, int, tree_node**)
../../gcc/cp/decl.c:11424
0x94c571 cp_parser_explicit_instantiation
../../gcc/cp/parser.c:15650
0x94692a cp_parser_declaration
../../gcc/cp/parser.c:12100
0x946671 cp_parser_declaration_seq_opt
../../gcc/cp/parser.c:12027
0x9366da cp_parser_translation_unit
../../gcc/cp/parser.c:4329
0x983965 c_parse_file()
../../gcc/cp/parser.c:37491
0xb267a2 c_common_parse_file()
../../gcc/c-family/c-opts.c:1070

[Bug middle-end/70022] [4.9 Regression] ICE: in tree_to_shwi, at tree.c:7328 with out-of-bounds vector index

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70022

--- Comment #7 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 11:46:08 2016
New Revision: 238087

URL: https://gcc.gnu.org/viewcvs?rev=238087&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-04-04  Richard Biener  

PR rtl-optimization/70484
* rtl.h (canon_output_dependence): Declare.
* alias.c (canon_output_dependence): New function.
* dse.c (record_store): Use canon_output_dependence rather
than canon_true_dependence.

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

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-05-06  Richard Biener  

PR middle-end/70931
* dwarf2out.c (native_encode_initializer): Skip zero-sized fields.

* gfortran.dg/pr70931.f90: New testcase.

2016-03-01  Richard Biener  

PR middle-end/70022
* fold-const.c (fold_indirect_ref_1): Fix range checking for
vector BIT_FIELD_REF extract.

* gcc.dg/pr70022.c: New testcase.

Added:
branches/gcc-4_9-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr70022.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr70484.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/pr70931.f90
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/alias.c
branches/gcc-4_9-branch/gcc/dse.c
branches/gcc-4_9-branch/gcc/dwarf2out.c
branches/gcc-4_9-branch/gcc/fold-const.c
branches/gcc-4_9-branch/gcc/rtl.h
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
branches/gcc-4_9-branch/gcc/tree-ssa.c

[Bug middle-end/70022] [4.9 Regression] ICE: in tree_to_shwi, at tree.c:7328 with out-of-bounds vector index

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70022

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
  Known to fail|4.9.4   |4.9.3

--- Comment #6 from Richard Biener  ---
Fixed.

[Bug tree-optimization/71452] [4.9/5 Regression] Wrong optimization of stores to _Bool via char*

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71452

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 11:46:08 2016
New Revision: 238087

URL: https://gcc.gnu.org/viewcvs?rev=238087&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-04-04  Richard Biener  

PR rtl-optimization/70484
* rtl.h (canon_output_dependence): Declare.
* alias.c (canon_output_dependence): New function.
* dse.c (record_store): Use canon_output_dependence rather
than canon_true_dependence.

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

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-05-06  Richard Biener  

PR middle-end/70931
* dwarf2out.c (native_encode_initializer): Skip zero-sized fields.

* gfortran.dg/pr70931.f90: New testcase.

2016-03-01  Richard Biener  

PR middle-end/70022
* fold-const.c (fold_indirect_ref_1): Fix range checking for
vector BIT_FIELD_REF extract.

* gcc.dg/pr70022.c: New testcase.

Added:
branches/gcc-4_9-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr70022.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr70484.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/pr70931.f90
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/alias.c
branches/gcc-4_9-branch/gcc/dse.c
branches/gcc-4_9-branch/gcc/dwarf2out.c
branches/gcc-4_9-branch/gcc/fold-const.c
branches/gcc-4_9-branch/gcc/rtl.h
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
branches/gcc-4_9-branch/gcc/tree-ssa.c

[Bug fortran/70931] [4.9 Regression] ICE with -g in native_encode_initializer, bei dwarf2out.c:17768

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70931

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #8 from Richard Biener  ---
Fixed.

[Bug rtl-optimization/70484] [4.9 Regression] Wrong optimization with aliasing and access via char

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70484

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
  Known to fail||4.9.3

--- Comment #9 from Richard Biener  ---
Fixed.

[Bug fortran/70931] [4.9 Regression] ICE with -g in native_encode_initializer, bei dwarf2out.c:17768

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70931

--- Comment #9 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 11:46:08 2016
New Revision: 238087

URL: https://gcc.gnu.org/viewcvs?rev=238087&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-04-04  Richard Biener  

PR rtl-optimization/70484
* rtl.h (canon_output_dependence): Declare.
* alias.c (canon_output_dependence): New function.
* dse.c (record_store): Use canon_output_dependence rather
than canon_true_dependence.

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

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-05-06  Richard Biener  

PR middle-end/70931
* dwarf2out.c (native_encode_initializer): Skip zero-sized fields.

* gfortran.dg/pr70931.f90: New testcase.

2016-03-01  Richard Biener  

PR middle-end/70022
* fold-const.c (fold_indirect_ref_1): Fix range checking for
vector BIT_FIELD_REF extract.

* gcc.dg/pr70022.c: New testcase.

Added:
branches/gcc-4_9-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr70022.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr70484.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/pr70931.f90
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/alias.c
branches/gcc-4_9-branch/gcc/dse.c
branches/gcc-4_9-branch/gcc/dwarf2out.c
branches/gcc-4_9-branch/gcc/fold-const.c
branches/gcc-4_9-branch/gcc/rtl.h
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
branches/gcc-4_9-branch/gcc/tree-ssa.c

[Bug rtl-optimization/70484] [4.9 Regression] Wrong optimization with aliasing and access via char

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70484

--- Comment #8 from Richard Biener  ---
Author: rguenth
Date: Thu Jul  7 11:46:08 2016
New Revision: 238087

URL: https://gcc.gnu.org/viewcvs?rev=238087&root=gcc&view=rev
Log:
2016-07-07  Richard Biener  

Backport from mainline
2016-04-04  Richard Biener  

PR rtl-optimization/70484
* rtl.h (canon_output_dependence): Declare.
* alias.c (canon_output_dependence): New function.
* dse.c (record_store): Use canon_output_dependence rather
than canon_true_dependence.

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

2016-06-08  Richard Biener  

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

2016-05-06  Richard Biener  

PR middle-end/70931
* dwarf2out.c (native_encode_initializer): Skip zero-sized fields.

* gfortran.dg/pr70931.f90: New testcase.

2016-03-01  Richard Biener  

PR middle-end/70022
* fold-const.c (fold_indirect_ref_1): Fix range checking for
vector BIT_FIELD_REF extract.

* gcc.dg/pr70022.c: New testcase.

Added:
branches/gcc-4_9-branch/gcc/testsuite/g++.dg/torture/pr71452.C
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr70022.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr70484.c
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr71452.c
branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/pr70931.f90
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/alias.c
branches/gcc-4_9-branch/gcc/dse.c
branches/gcc-4_9-branch/gcc/dwarf2out.c
branches/gcc-4_9-branch/gcc/fold-const.c
branches/gcc-4_9-branch/gcc/rtl.h
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
branches/gcc-4_9-branch/gcc/tree-ssa.c

[Bug tree-optimization/71522] [5 Regression] Wrong optimization of memcpy through a var of type long double

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71522

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
  Known to fail|5.1.0   |5.4.0

--- Comment #8 from Richard Biener  ---
Fixed.

[Bug tree-optimization/71452] [4.9/5 Regression] Wrong optimization of stores to _Bool via char*

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71452

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||5.4.1
 Resolution|--- |FIXED
  Known to fail||4.9.3, 5.4.0

--- Comment #7 from Richard Biener  ---
Fixed.

[Bug c++/71794] Std::array as an incomplete type in nested name specifier.

2016-07-07 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71794

--- Comment #3 from Jonathan Wakely  ---
VC++ accepts it too, so it's two for and two against.

Reduced:

template struct X { };

template struct Y;

template struct Y> { };

template Y f() { return {}; }

auto x = f< X<1> >();

[Bug ada/70867] [6 regression] access discriminant in return aggregate wrongly detected as dangling

2016-07-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70867

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P4

[Bug fortran/71795] New: Two Bugs in array constructors (optimization)

2016-07-07 Thread c.friedr...@fz-juelich.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71795

Bug ID: 71795
   Summary: Two Bugs in array constructors (optimization)
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: c.friedr...@fz-juelich.de
  Target Milestone: ---

1st bug: 

There is a problem with array constructors and optimization in gfortran 4.9.1
in the following code:

--

 program test

 implicit none
 integer :: i,n

# ifdef BUG
 integer, allocatable :: a(:)
 allocate ( a(1) )
# else
 integer :: a(1)
# endif

 n = 1
 a = 2

 write(*,*) (any(a(i).eq.(/1,2,3/)) ,i=1,n)
 write(*,*) (/ (any(a(i).eq.(/1,2,3/)) ,i=1,n) /)
 write(*,*) any ( (/ (any(a(i).eq.(/1,2,3/)) ,i=1,n) /) )

 end

---

The result should obviously read
T T T.
However, I also get the incorrect result
T F F:

gfortran -O0 -cpp test.f   -->  correct
gfortran -O1 -cpp test.f   -->  correct
gfortran -O2 -cpp test.f   -->  correct
gfortran -O3 -cpp test.f   -->  correct
gfortran -O0 -cpp -DBUG test.f   -->  correct
gfortran -O1 -cpp -DBUG test.f   -->  incorrect
gfortran -O2 -cpp -DBUG test.f   -->  incorrect
gfortran -O3 -cpp -DBUG test.f   -->  incorrect


2nd bug:

A similar problem appears in

--

  program test

  implicit none
  integer :: i,j,n

  real(8) :: arr(1,1,3)
  real(8) :: d(3)

  arr = 1d0
  n   = 1
  d   = (/ ( sum ( (/ (arr(j,j,i), j=1,1) /) ) , i=1,3 ) /) / n  !!!

  write(*,*) d

  end

--

It runs correctly without optimization, but with optimization (all levels) it
gives
Infinity Infinity Infinity

Without "/ n" at "!!!" it runs correctly with optimizations, too.


Thank you!

Christoph

---

BTW, this is the output of "gcc -v":

Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-libgcj-multifile
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk
--disable-dssi --disable-plugin
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic
--host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-51)

[Bug c++/71794] Std::array as an incomplete type in nested name specifier.

2016-07-07 Thread p.bednarski at outlook dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71794

Pawel Bednarski  changed:

   What|Removed |Added

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

--- Comment #4 from Pawel Bednarski  ---
That's right Jonathan, thanks!

[Bug c/71787] #pragma GCC diagnostic unexpectedly terminates a statement

2016-07-07 Thread gary at intrepid dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71787

--- Comment #2 from Gary Funck  ---
Manuel, thanks for the quick follow up.

[Bug c++/70336] [5 regression] Incorrect Wconversion warning

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70336

--- Comment #14 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:33:10 2016
New Revision: 238090

URL: https://gcc.gnu.org/viewcvs?rev=238090&root=gcc&view=rev
Log:
Backported from mainline
2016-04-05  Jakub Jelinek  

PR c++/70336
* match.pd (nested int casts): Limit to GIMPLE.

* c-c++-common/pr70336.c: New test.
* gcc.dg/torture/builtin-isinf_sign-1.c (foo): Guard tests
no longer optimized away at -O0 with #ifndef __OPTIMIZE__.

Added:
branches/gcc-5-branch/gcc/testsuite/c-c++-common/pr70336.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/match.pd
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/builtin-isinf_sign-1.c

[Bug fortran/71795] [4.9/5/6/7 Regression] Two Bugs in array constructors (optimization)

2016-07-07 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71795

Martin Liška  changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-07
 CC||marxin at gcc dot gnu.org
   Target Milestone|--- |4.9.4
Summary|Two Bugs in array   |[4.9/5/6/7 Regression] Two
   |constructors (optimization) |Bugs in array constructors
   ||(optimization)
 Ever confirmed|0   |1

--- Comment #1 from Martin Liška  ---
Confirmed, started with GCC 4.9.0.

[Bug target/70574] [5 Regression] wrong code with -mavx2, read of partially initialised stack variable

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70574

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:34:07 2016
New Revision: 238091

URL: https://gcc.gnu.org/viewcvs?rev=238091&root=gcc&view=rev
Log:
Backported from mainline
2016-04-08  Jakub Jelinek  

PR rtl-optimization/70574
* fwprop.c (forward_propagate_and_simplify): Don't add
REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
(try_fwprop_subst): Don't add REG_EQUAL note if there are any
paradoxical subregs within *loc.

* gcc.target/i386/avx2-pr70574.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/avx2-pr70574.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/fwprop.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug fortran/71796] New: Link error referencing compiler generated symbol __vtab_xxx

2016-07-07 Thread ian_harvey at bigpond dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71796

Bug ID: 71796
   Summary: Link error referencing compiler generated symbol
__vtab_xxx
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ian_harvey at bigpond dot com
  Target Milestone: ---

Created attachment 38853
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38853&action=edit
Reduced test case program exhibiting the link error

With recent trunk (r238061) The attached program fails to link with undefined
references to `__vtab_ma_Ta.3481`, which appears to be an internally generated
symbol related to the compiler's support for polymorphism.

The error disappears if the order of the USE statements is changed in one of
the scopes as indicated in the test case.  USE statement ordering in a scope is
not supposed to affect source semantics.

$ gfortran -v vtab-link-error.f90
Driving: gfortran -v vtab-link-error.f90 -l gfortran -l m -shared-libgcc
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: .././src/configure --prefix=/home/MEGMS2/ian/usr/gcc-7.0.0
--enable-languages=c,c++,fortran --enable-libgomp --enable-checking=release :
(reconfigured) .././src/configure --prefix=/home/MEGMS2/ian/usr/gcc-7.0.0
--enable-libgomp --enable-checking=release --enable-languages=c,c++,fortran,lto
--no-create --no-recursion
Thread model: posix
gcc version 7.0.0 20160706 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/f951
vtab-link-error.f90 -quiet -dumpbase vtab-link-error.f90 -mtune=generic
-march=x86-64 -auxbase vtab-link-error -version -fintrinsic-modules-path
/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/finclude -o
/tmp/cca44wnw.s
GNU Fortran (GCC) version 7.0.0 20160706 (experimental) (x86_64-pc-linux-gnu)
compiled by GNU C version 7.0.0 20160706 (experimental), GMP version
6.1.0, MPFR version 3.1.4, MPC version 1.0.2, isl version none
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Fortran2008 (GCC) version 7.0.0 20160706 (experimental)
(x86_64-pc-linux-gnu)
compiled by GNU C version 7.0.0 20160706 (experimental), GMP version
6.1.0, MPFR version 3.1.4, MPC version 1.0.2, isl version none
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 as -v --64 -o /tmp/ccnjfNd7.o /tmp/cca44wnw.s
GNU assembler version 2.26 (x86_64-redhat-linux) using BFD version version
2.26.20160125
Reading specs from
/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/../../../../lib64/libgfortran.spec
rename spec lib to liborig
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
COMPILER_PATH=/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/:/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/:/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/:/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/:/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/
LIBRARY_PATH=/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/:/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/collect2
-plugin
/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/liblto_plugin.so
-plugin-opt=/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
-plugin-opt=-fresolution=/tmp/cc1JOD5H.res -plugin-opt=-pass-through=-lgcc_s
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath
-plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc
-plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc
--eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2
/lib/../lib64/crt1.o /lib/../lib64/crti.o
/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/crtbegin.o
-L/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0
-L/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/../../..
/tmp/ccnjfNd7.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc
-lgcc_s -lgcc
/home/MEGMS2/ian/usr/gc

[Bug debug/70628] [5 regression] ICE in get_reg_rtx, at emit-rtl.c:1025

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70628

--- Comment #14 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:39:40 2016
New Revision: 238092

URL: https://gcc.gnu.org/viewcvs?rev=238092&root=gcc&view=rev
Log:
Backported from mainline
2016-04-13  Jakub Jelinek  

PR debug/70628
* explow.c (convert_memory_address_addr_space_1): Formatting fix.

PR debug/70628
* rtl.h (convert_memory_address_addr_space_1): New prototype.
* explow.c (convert_memory_address_addr_space_1): No longer static,
add NO_EMIT argument and don't call convert_modes if true, pass
it down recursively, remove break after return.
(convert_memory_address_addr_space): Adjust caller.
* simplify-rtx.c (simplify_unary_operation_1): Call
convert_memory_address_addr_space_1 instead of convert_memory_address,
if it returns NULL, don't simplify.

* gcc.dg/torture/pr70628.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr70628.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/explow.c
branches/gcc-5-branch/gcc/rtl.h
branches/gcc-5-branch/gcc/simplify-rtx.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug target/70633] [5 Regression] ICE on valid code at -Os (in 32-bit mode) on x86_64-linux-gnu: output_operand: invalid expression as operand

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70633

--- Comment #8 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:40:43 2016
New Revision: 238093

URL: https://gcc.gnu.org/viewcvs?rev=238093&root=gcc&view=rev
Log:
Backported from mainline
2016-04-13  Jakub Jelinek  

PR middle-end/70633
* gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
gimplification turns some element into non-constant.

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

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.c-torture/compile/pr70633.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/gimplify.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug c++/70641] [5 Regression] ICE on valid code at -O1 and above on x86_64-linux-gnu: verify_gimple failed

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70641

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:41:25 2016
New Revision: 238094

URL: https://gcc.gnu.org/viewcvs?rev=238094&root=gcc&view=rev
Log:
Backported from mainline
2016-04-13  Jakub Jelinek  

PR c++/70641
* ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
eh edges have been purged.

* g++.dg/opt/pr70641.C: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/opt/pr70641.C
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/ipa-pure-const.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug sanitizer/71498] ubsan bounds checking influenced by surrounding code

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71498

--- Comment #8 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:42:43 2016
New Revision: 238095

URL: https://gcc.gnu.org/viewcvs?rev=238095&root=gcc&view=rev
Log:
Backported from mainline
2016-06-13  Jakub Jelinek  

PR sanitizer/71498
* c-gimplify.c (ubsan_walk_array_refs_r): Set *walk_subtrees = 0 on
all BIND_EXPRs, and on all BIND_EXPRs recurse also on BIND_EXPR_BODY.

* c-c++-common/ubsan/bounds-13.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/c-c++-common/ubsan/bounds-13.c
Modified:
branches/gcc-5-branch/gcc/c-family/ChangeLog
branches/gcc-5-branch/gcc/c-family/c-gimplify.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug middle-end/71494] [4.9/5 Regression] label as value in nested function

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71494

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:43:50 2016
New Revision: 238096

URL: https://gcc.gnu.org/viewcvs?rev=238096&root=gcc&view=rev
Log:
Backported from mainline
2016-06-10  Jakub Jelinek  

PR middle-end/71494
* tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
without LABEL_DECL, set *handled_ops_p to false instead of true.

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

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.c-torture/execute/pr71494.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-nested.c

[Bug c++/71516] [5 Regression] ICE on invalid C++ code (invalid use of forward declared type) on x86_64-linux-gnu: Segmentation fault (program cc1plus)

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71516

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:44:33 2016
New Revision: 238097

URL: https://gcc.gnu.org/viewcvs?rev=238097&root=gcc&view=rev
Log:
Backported from mainline
2016-06-14  Jakub Jelinek  

PR c++/71516
* decl.c (complete_vars): Handle gracefully type == error_mark_node.

* g++.dg/init/pr71516.C: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/init/pr71516.C
Modified:
branches/gcc-5-branch/gcc/cp/ChangeLog
branches/gcc-5-branch/gcc/cp/decl.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug c++/71528] [5 Regression] multiple extern reference declarations produce uninitialized access

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71528

--- Comment #8 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:45:44 2016
New Revision: 238098

URL: https://gcc.gnu.org/viewcvs?rev=238098&root=gcc&view=rev
Log:
Backported from mainline
2016-06-14  Jakub Jelinek  

PR c++/71528
* decl.c (duplicate_decls): For DECL_INITIALIZED_P non-external
olddecl vars, preserve their TREE_READONLY bit.

* g++.dg/opt/pr71528.C: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/opt/pr71528.C
Modified:
branches/gcc-5-branch/gcc/cp/ChangeLog
branches/gcc-5-branch/gcc/cp/decl.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug middle-end/71581] [5 Regression] ICE on valid code on x86_64-linux-gnu with -Wuninitialized (Segmentation fault)

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71581

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:46:33 2016
New Revision: 238099

URL: https://gcc.gnu.org/viewcvs?rev=238099&root=gcc&view=rev
Log:
Backported from mainline
2016-06-20  Jakub Jelinek  

PR middle-end/71581
* tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
for conversion of scalar user var to complex type and use the
underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
punt.

* gcc.dg/pr71581.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pr71581.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-ssa-uninit.c

[Bug tree-optimization/71588] [4.9/5 Regression] ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in execute_todo, at passes.c:2009

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71588

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:47:20 2016
New Revision: 238100

URL: https://gcc.gnu.org/viewcvs?rev=238100&root=gcc&view=rev
Log:
Backported from mainline
2016-06-21  Jakub Jelinek  

PR tree-optimization/71588
* tree-ssa-strlen.c (valid_builtin_call): New function.
(adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
it.

* gcc.dg/pr71558.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pr71558.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-ssa-strlen.c

[Bug fortran/71705] [4.9/5 Regression] ICE in lower_omp_target, at omp-low.c:16136

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71705

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:49:04 2016
New Revision: 238102

URL: https://gcc.gnu.org/viewcvs?rev=238102&root=gcc&view=rev
Log:
Backported from mainline
2016-06-30  Jakub Jelinek  

PR fortran/71705
* trans-openmp.c (gfc_trans_omp_clauses): Set TREE_ADDRESSABLE on
decls in to/from clauses.

* gfortran.dg/gomp/pr71705.f90: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/gfortran.dg/gomp/pr71705.f90
Modified:
branches/gcc-5-branch/gcc/fortran/ChangeLog
branches/gcc-5-branch/gcc/fortran/trans-openmp.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug middle-end/71626] [4.9/5/6 regression] ICE at -O1 and above on x86_64-linux-gnu (in output_constant_pool_2, at varasm.c:3837)

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71626

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:48:16 2016
New Revision: 238101

URL: https://gcc.gnu.org/viewcvs?rev=238101&root=gcc&view=rev
Log:
Backported from mainline
2016-06-28  Jakub Jelinek  

PR middle-end/71626
* config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
a constant, force its SUBREG_REG into memory or register instead
of whole op1.

* gcc.c-torture/execute/pr71626-1.c: New test.
* gcc.c-torture/execute/pr71626-2.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.c-torture/execute/pr71626-1.c
branches/gcc-5-branch/gcc/testsuite/gcc.c-torture/execute/pr71626-2.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/config/i386/i386.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug fortran/71704] ICE with -fopenmp and some omp constructs

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71704

--- Comment #5 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:50:01 2016
New Revision: 238103

URL: https://gcc.gnu.org/viewcvs?rev=238103&root=gcc&view=rev
Log:
Backported from mainline
2016-06-30  Jakub Jelinek  

PR fortran/71704
* parse.c (matchs, matcho): Move right before decode_omp_directive.
If spec_only, only gfc_match the keyword and if successful, goto
do_spec_only.
(matchds, matchdo): Define.
(decode_omp_directive): Add spec_only local var and set it.
Use matchds or matchdo macros instead of matchs or matcho
for declare target, declare simd, declare reduction and threadprivate
directives.  Return ST_GET_FCN_CHARACTERISTICS if a non-declarative
directive could be matched.
(next_statement): For ST_GET_FCN_CHARACTERISTICS restore
gfc_current_locus from old_locus even if there is no label.

* gfortran.dg/gomp/pr71704.f90: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/gfortran.dg/gomp/pr71704.f90
Modified:
branches/gcc-5-branch/gcc/fortran/ChangeLog
branches/gcc-5-branch/gcc/fortran/parse.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug fortran/71717] A gfortran silent "wrong code" bug in the transition from 4.9.0 -> 4.9.1, using OpenMP.

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71717

--- Comment #4 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:51:01 2016
New Revision: 238104

URL: https://gcc.gnu.org/viewcvs?rev=238104&root=gcc&view=rev
Log:
Backported from mainline
2016-07-01  Jakub Jelinek  

PR fortran/71717
* trans-openmp.c (gfc_omp_privatize_by_reference): Return false
for GFC_DECL_ASSOCIATE_VAR_P with POINTER_TYPE.

* testsuite/libgomp.fortran/associate3.f90: New test.

Added:
branches/gcc-5-branch/libgomp/testsuite/libgomp.fortran/associate3.f90
Modified:
branches/gcc-5-branch/gcc/fortran/ChangeLog
branches/gcc-5-branch/gcc/fortran/trans-openmp.c
branches/gcc-5-branch/libgomp/ChangeLog

[Bug c/68062] [4.9 Regression] ICE when comparing vectors

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68062

--- Comment #20 from Jakub Jelinek  ---
Author: jakub
Date: Thu Jul  7 12:59:39 2016
New Revision: 238108

URL: https://gcc.gnu.org/viewcvs?rev=238108&root=gcc&view=rev
Log:
Backported from mainline
2016-03-02  Jakub Jelinek  

PR c/68062
* c-c++-common/vector-compare-4.c: Add -Wno-psabi to dg-options.

Modified:
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/testsuite/c-c++-common/vector-compare-4.c

[Bug c++/71797] New: Spurious unused-variable warning with inline function and unrelated error

2016-07-07 Thread r at queiro dot co.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71797

Bug ID: 71797
   Summary: Spurious unused-variable warning with inline function
and unrelated error
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: r at queiro dot co.uk
  Target Milestone: ---

Created attachment 38854
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38854&action=edit
test case

The unused-variable warning is only produced when another error is present and
FOO_CONSTANT is initialized with an inline function. Otherwise, no warning is
generated. Tested with g++ 4.8.4 and 4.9.3.

~ g++ -Wall foo.cc
In file included from foo.cc:2:0:
foo.h: In constructor ‘Foo::Foo()’:
foo.h:8:13: error: ‘create_a_compile_error’ was not declared in this scope
 Foo() { create_a_compile_error; };
 ^
foo.h: At global scope:
foo.h:5:16: warning: ‘FOO_CONSTANT’ defined but not used [-Wunused-variable]
 const unsigned FOO_CONSTANT = f(4);
^
~ g++ -v 
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
4.8.4-2ubuntu1~14.04.3' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.8 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap
--enable-plugin --with-system-zlib --disable-browser-plugin
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686
--with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)

~ cat foo.ii 
# 1 "foo.cc"
# 1 ""
# 1 ""
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "" 2
# 1 "foo.cc"
static inline unsigned f(unsigned x) {
return x;
}

const unsigned FOO_CONSTANT = f(4);

class Foo {
Foo() { create_a_compile_error; };
};

[Bug c++/70336] [5 regression] Incorrect Wconversion warning

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70336

Jakub Jelinek  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #15 from Jakub Jelinek  ---
Fixed.

[Bug target/70574] [5 Regression] wrong code with -mavx2, read of partially initialised stack variable

2016-07-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70574

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #7 from Jakub Jelinek  ---
Fixed.

  1   2   >