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

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61198

Jakub Jelinek  changed:

   What|Removed |Added

 CC||pangbw at gmail dot com

--- Comment #12 from Jakub Jelinek  ---
*** Bug 70567 has been marked as a duplicate of this bug. ***

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

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70567

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution|--- |DUPLICATE

--- Comment #2 from Jakub Jelinek  ---
This got fixed with r218955, and the ICE started with r181118 when template 
aliases have been introduced.
In r234337 it has been backported to 4.9, so it is fixed on all currently
supported releases.

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

[Bug c++/70572] New: ICE on code with decltype (auto) on x86_64-linux-gnu in digest_init_r, at cp/typeck2.c:1103 with -std=c++14

2016-04-06 Thread su at cs dot ucdavis.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70572

Bug ID: 70572
   Summary: ICE on code with decltype (auto) on x86_64-linux-gnu
in digest_init_r, at cp/typeck2.c:1103 with -std=c++14
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: su at cs dot ucdavis.edu
  Target Milestone: ---

The following code causes an ICE when compiled with the current GCC trunk on
x86_64-linux-gnu in both 32-bit and 64-bit modes. 

It also affects 4.9.x and later, which support -std=c++14. 


$ g++-trunk -v
Using built-in specs.
COLLECT_GCC=g++-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/usr/local/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 6.0.0 20160406 (experimental) [trunk revision 234771] (GCC) 
$ 
$ g++-trunk -c -std=c++14 small.cpp
small.cpp: In function ‘int foo()’:
small.cpp:3:23: internal compiler error: in digest_init_r, at cp/typeck2.c:1103
   decltype (auto) a = foo;   // OK: decltype (auto) a = &foo;
   ^~~
0x6cd59c digest_init_r
../../gcc-source-trunk/gcc/cp/typeck2.c:1099
0x6cf2ea digest_init_flags
../../gcc-source-trunk/gcc/cp/typeck2.c:1168
0x6cf2ea store_init_value(tree_node*, tree_node*, vec**, int)
../../gcc-source-trunk/gcc/cp/typeck2.c:802
0x62fbf4 check_initializer
../../gcc-source-trunk/gcc/cp/decl.c:6162
0x659865 cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
../../gcc-source-trunk/gcc/cp/decl.c:6810
0x752f9f cp_parser_init_declarator
../../gcc-source-trunk/gcc/cp/parser.c:18658
0x753750 cp_parser_simple_declaration
../../gcc-source-trunk/gcc/cp/parser.c:12379
0x753a61 cp_parser_block_declaration
../../gcc-source-trunk/gcc/cp/parser.c:12248
0x7544b8 cp_parser_declaration_statement
../../gcc-source-trunk/gcc/cp/parser.c:11860
0x732b7b cp_parser_statement
../../gcc-source-trunk/gcc/cp/parser.c:10528
0x73349c cp_parser_statement_seq_opt
../../gcc-source-trunk/gcc/cp/parser.c:10806
0x73358f cp_parser_compound_statement
../../gcc-source-trunk/gcc/cp/parser.c:10760
0x751dcf cp_parser_function_body
../../gcc-source-trunk/gcc/cp/parser.c:20653
0x751dcf cp_parser_ctor_initializer_opt_and_function_body
../../gcc-source-trunk/gcc/cp/parser.c:20689
0x752871 cp_parser_function_definition_after_declarator
../../gcc-source-trunk/gcc/cp/parser.c:25351
0x753467 cp_parser_function_definition_from_specifiers_and_declarator
../../gcc-source-trunk/gcc/cp/parser.c:25263
0x753467 cp_parser_init_declarator
../../gcc-source-trunk/gcc/cp/parser.c:18429
0x753750 cp_parser_simple_declaration
../../gcc-source-trunk/gcc/cp/parser.c:12379
0x753a61 cp_parser_block_declaration
../../gcc-source-trunk/gcc/cp/parser.c:12248
0x75c5d0 cp_parser_declaration
../../gcc-source-trunk/gcc/cp/parser.c:12145
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.
$ 


--


int foo ()
{
  decltype (auto) a = foo;  // OK: decltype (auto) a = &foo;
  return 0; 
}

[Bug c++/70571] New: ICE on valid code on x86_64-linux-gnu in verify_ctor_sanity, at cp/constexpr.c:2259

2016-04-06 Thread su at cs dot ucdavis.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70571

Bug ID: 70571
   Summary: ICE on valid code on x86_64-linux-gnu in
verify_ctor_sanity, at cp/constexpr.c:2259
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: su at cs dot ucdavis.edu
  Target Milestone: ---

The following code causes an ICE when compiled with the current GCC trunk on
x86_64-linux-gnu in both 32-bit and 64-bit modes.  

This is a regression from 5.3.x.


$ g++-trunk -v
Using built-in specs.
COLLECT_GCC=g++-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/usr/local/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 6.0.0 20160406 (experimental) [trunk revision 234771] (GCC) 
$ 
$ g++-5.3 -c small.cpp
$
$ g++-trunk -c small.cpp
small.cpp: In function ‘void foo(vec, vec, int)’:
small.cpp:4:14: internal compiler error: in verify_ctor_sanity, at
cp/constexpr.c:2348
   x = (z == y);
  ^
0x845da7 verify_ctor_sanity
../../gcc-source-trunk/gcc/cp/constexpr.c:2347
0x85314f cxx_eval_bare_aggregate
../../gcc-source-trunk/gcc/cp/constexpr.c:2382
0x84ddb0 cxx_eval_constant_expression
../../gcc-source-trunk/gcc/cp/constexpr.c:3862
0x85192d cxx_eval_binary_expression
../../gcc-source-trunk/gcc/cp/constexpr.c:1716
0x84d414 cxx_eval_constant_expression
../../gcc-source-trunk/gcc/cp/constexpr.c:3795
0x854639 cxx_eval_outermost_constant_expr
../../gcc-source-trunk/gcc/cp/constexpr.c:4110
0x855c8b potential_constant_expression_1
../../gcc-source-trunk/gcc/cp/constexpr.c:5093
0x741eb4 cp_parser_constant_expression
../../gcc-source-trunk/gcc/cp/parser.c:9334
0x742614 cp_parser_initializer_clause
../../gcc-source-trunk/gcc/cp/parser.c:20793
0x741c91 cp_parser_assignment_expression
../../gcc-source-trunk/gcc/cp/parser.c:9074
0x744329 cp_parser_expression
../../gcc-source-trunk/gcc/cp/parser.c:9222
0x744a9f cp_parser_expression_statement
../../gcc-source-trunk/gcc/cp/parser.c:10683
0x7327eb cp_parser_statement
../../gcc-source-trunk/gcc/cp/parser.c:10534
0x73349c cp_parser_statement_seq_opt
../../gcc-source-trunk/gcc/cp/parser.c:10806
0x73358f cp_parser_compound_statement
../../gcc-source-trunk/gcc/cp/parser.c:10760
0x751dcf cp_parser_function_body
../../gcc-source-trunk/gcc/cp/parser.c:20653
0x751dcf cp_parser_ctor_initializer_opt_and_function_body
../../gcc-source-trunk/gcc/cp/parser.c:20689
0x752871 cp_parser_function_definition_after_declarator
../../gcc-source-trunk/gcc/cp/parser.c:25351
0x753467 cp_parser_function_definition_from_specifiers_and_declarator
../../gcc-source-trunk/gcc/cp/parser.c:25263
0x753467 cp_parser_init_declarator
../../gcc-source-trunk/gcc/cp/parser.c:18429
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.
$ 


--


typedef int vec __attribute__ ((vector_size (sizeof (int;
void foo (vec x, vec y, int z)
{
  x = (z == y);
}

[Bug libstdc++/51749] Including pollutes global namespace

2016-04-06 Thread yselkowi at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51749

--- Comment #32 from Yaakov Selkowitz  ---
In an effort to enable C99-in-C++ functionality on newlib-based targets
(including Cygwin and RTEMS), we just overhauled our feature test macros to be
functionally compatible with glibc's.  Ignoring the lack of missing long double
real and complex math functions (which are anyways guarded separately), we were
able to thereby enable the rest of _GLIBCXX_USE_C99* functionality without the
-D_GNU_SOURCE hack.

Our approach was (in glibc terms):

* enable __USE_ISOC99 in features.h if defined(__cplusplus), for C99-in-TR1;

* enable __USE_ISOC11 in features.h if __cplusplus >= 201103L, for *quick_exit
in C++11.

* define the _POSIX_* capability macros in  regardless of
__USE_POSIX*, for gthr-posix.h.

Note that the public -D_ISOC*_SOURCE macros were NOT defined in g++.

However, we don't need ftello64 (Cygwin's off_t is naturally 64-bit) nor do we
have the locale_t group of functions, which according to the Linux man-pages
are SUSv4.  These functions may be best served by their own special guards.

[Bug c++/70570] New: Assembler error "symbol already defined" from nested lambdas and function-static variable

2016-04-06 Thread ndkrempel at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70570

Bug ID: 70570
   Summary: Assembler error "symbol already defined" from nested
lambdas and function-static variable
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ndkrempel at gmail dot com
  Target Milestone: ---

Created attachment 38209
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38209&action=edit
Minimal test case, compile with g++ -std=c++14

Referring to a function-static variable from within both of two nested lambda
functions (the outer one being generic/polymorphic) causes an assembler error
(symbol already defined).

Minimal test case attached, tested on g++ 5.3.0.

[Bug bootstrap/70569] configure: error: source directory already configured; run "make distclean" there first

2016-04-06 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70569

Andrew Pinski  changed:

   What|Removed |Added

  Component|libstdc++   |bootstrap

--- Comment #1 from Andrew Pinski  ---
Most people don't build in the src directory and it is not supported at least
as far as I know.
Please read the installation directions for more details.

[Bug libstdc++/70569] New: configure: error: source directory already configured; run "make distclean" there first

2016-04-06 Thread mario.silva.costa at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70569

Bug ID: 70569
   Summary: configure: error: source directory already configured;
run "make distclean" there first
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mario.silva.costa at gmail dot com
  Target Milestone: ---

Created attachment 38208
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38208&action=edit
libstdc++-v3 config.log

on ubuntu 14.04 64 bit.

./configure --disable-multilib && make

fails to compile.

mkdir -p -- x86_64-pc-linux-gnu/libstdc++-v3
Checking multilib configuration for libstdc++-v3...
Configuring stage 1 in x86_64-pc-linux-gnu/libstdc++-v3
configure: creating cache ./config.cache
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
configure: error: source directory already configured; run "make distclean"
there first
make[2]: *** [configure-stage1-target-libstdc++-v3] Error 1
make[2]: Leaving directory `/home/atritoman/gcc'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/atritoman/gcc'
make: *** [all] Error 2

[Bug target/70568] PowerPC64: union of floating and fixed doesn't use POWER8 GPR/VSR moves

2016-04-06 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70568

--- Comment #2 from Segher Boessenkool  ---
sradi, that is.

[Bug target/70568] PowerPC64: union of floating and fixed doesn't use POWER8 GPR/VSR moves

2016-04-06 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70568

Segher Boessenkool  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-04-07
 Ever confirmed|0   |1

--- Comment #1 from Segher Boessenkool  ---
Confirmed.  Still better is

xscvdpspn 0,1
mfvsrd 3,0
srdi 3,3,32

[Bug target/70568] New: PowerPC64: union of floating and fixed doesn't use POWER8 GPR/VSR moves

2016-04-06 Thread anton at samba dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70568

Bug ID: 70568
   Summary: PowerPC64: union of floating and fixed doesn't use
POWER8 GPR/VSR moves
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: anton at samba dot org
  Target Milestone: ---

The following test case from both glibc and openlibm:

typedef union
{
  float value;
  /* FIXME: Assumes 32 bit int.  */
  unsigned int word;
} ieee_float_shape_type;

/* Get a 32 bit int from a float.  */

#define GET_FLOAT_WORD(i,d) \
do {\
  ieee_float_shape_type gf_u;   \
  gf_u.value = (d); \
  (i) = gf_u.word;  \
} while (0)

int foo(float d)
{
int i;

GET_FLOAT_WORD(i, d);

return i;
}

Uses the stack to do the conversion:

foo:
stfs 1,-16(1)
ori 2,2,0
lwa 3,-16(1)

LLVM does what I expect:

foo:
xscvdpspn 0, 1
xxsldwi 0, 0, 0, 3
mfvsrwz 3, 0
extsw 3, 3

[Bug tree-optimization/68953] [6 Regression] [graphite] Wrong code w/ -O[12] -floop-nest-optimize

2016-04-06 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68953

--- Comment #6 from vries at gcc dot gnu.org ---
(In reply to vries from comment #5)
> The patch changes the order of the subscript functions

Oops, that's accesses, actually.

> (that was the easiest
> for me to implement) to:
>   [alias set, first subscript, last subscript]

[Bug tree-optimization/68953] [6 Regression] [graphite] Wrong code w/ -O[12] -floop-nest-optimize

2016-04-06 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68953

--- Comment #5 from vries at gcc dot gnu.org ---
Created attachment 38207
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38207&action=edit
demonstrator patch

In add_pdr_constraints, for the EXTRADIM=0 case we have:
...
accesses: { S_4[i1, i2] -> [1, 1 + i1] }
subscript_sizes: { [1, i1] : i1 >= 0 and i1 <= 3 }
intersection: { S_4[i1, i2] -> [1, 1 + i1] : i1 >= -1 and i1 <= 2 }
...

but for the EXTRADIM=1 case, we have:
...
accesses: { S_4[i1, i2] -> [1, 0, 1 + i1] }
subscript_sizes: { [1, i1, 0] : i1 >= 0 and i1 <= 3 }
intersection: { S_4[-1, i2] -> [1, 0, 0] }
...

Actually, the accesses are ordered:
  [alias set, last subscript, first subscript]
and the subscript sizes are ordered:
  [alias set range, first subscript range, last subscript range]
and that explains why intersection gives unintended results.

The patch changes the order of the subscript functions (that was the easiest
for me to implement) to:
  [alias set, first subscript, last subscript] 
and we get a more reasonable intersection (similar to the EXTRADIM=0 case):
...
accesses: { S_4[i1, i2] -> [1, 1 + i1, 0] }
subscript_sizes: { [1, i1, 0] : i1 >= 0 and i1 <= 3 }
intersection: { S_4[i1, i2] -> [1, 1 + i1, 0] : i1 >= -1 and i1 <= 2 }
...
and consequently, correct dependences, and the wrong-code issue is fixed.

Atm though I've got no clue about the overall effect of this change, or what
the actual fix should look like.

[Bug c/70436] [4.9/5/6 Regression] -Wparentheses missing ambiguous else warning

2016-04-06 Thread ppalka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70436

--- Comment #14 from Patrick Palka  ---
Author: ppalka
Date: Wed Apr  6 23:10:14 2016
New Revision: 234802

URL: https://gcc.gnu.org/viewcvs?rev=234802&root=gcc&view=rev
Log:
Fix C++ side of PR c/70436 (missing -Wparentheses warnings)

gcc/cp/ChangeLog:

PR c/70436
* parser.c (cp_parser_iteration_statement): New parameter IF_P.
Pass it through to cp_parser_already_scoped_statement.
(cp_parser_already_scoped_statement): New parameter IF_P.  Pass
it through to cp_parser_statement.
(cp_parser_statement): Pass IF_P through to
cp_parser_iteration_statement.
(cp_parser_pragma): Adjust call to
cp_parser_iteration_statement.

gcc/testsuite/ChangeLog:

PR c/70436
* g++.dg/warn/Wparentheses-29.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/warn/Wparentheses-29.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog

[Bug c/70436] [4.9/5/6 Regression] -Wparentheses missing ambiguous else warning

2016-04-06 Thread ppalka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70436

--- Comment #13 from Patrick Palka  ---
Author: ppalka
Date: Wed Apr  6 23:07:21 2016
New Revision: 234801

URL: https://gcc.gnu.org/viewcvs?rev=234801&root=gcc&view=rev
Log:
Fix new -Wparentheses warnings encountered during bootstrap

gcc/ChangeLog:

PR c/70436
* gimplify.c (gimplify_omp_ordered): Add explicit braces to
resolve a future -Wparentheses warning.
* omp-low.c (scan_sharing_clauses): Likewise.
* tree-parloops.c (eliminate_local_variables): Likewise.

gcc/cp/ChangeLog:

PR c/70436
* cp-tree.h (FOR_EACH_CLONE): Restructure macro to avoid
potentially generating a future -Wparentheses warning in its
callers.

gcc/fortran/ChangeLog:

PR c/70436
* openmp.c (gfc_find_omp_udr): Add explicit braces to resolve a
future -Wparentheses warning.

gcc/testsuite/ChangeLog:

PR c/70436
* g++.dg/plugin/pragma_plugin.c (handle_pragma_sayhello): Add
explicit braces to resolve a future -Wparentheses warning.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/openmp.c
trunk/gcc/gimplify.c
trunk/gcc/omp-low.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/plugin/pragma_plugin.c
trunk/gcc/tree-parloops.c

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

2016-04-06 Thread pangbw at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70567

--- Comment #1 from baoshan  ---
This issue is seen from 4.8 to 5.0.

[Bug c++/70567] New: internal compiler error: in retrieve_specialization, at cp/pt.c:1020

2016-04-06 Thread pangbw at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70567

Bug ID: 70567
   Summary: internal compiler error: in retrieve_specialization,
at cp/pt.c:1020
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: pangbw at gmail dot com
  Target Milestone: ---

1. cat y.C:

template < class > struct allocator_traits;
template < class > class allocator;
template < class _Ty > struct allocator_traits  >
{
  typedef _Ty value_type;
  typedef value_type *pointer;
  template < class _Other > using rebind_traits =
allocator_traits < allocator < _Other > >;
};
int test()
{
   allocator_traits >::rebind_traits::pointer pt;
}

2. ./xgcc -std=c++11 -S -B. y.c
y.C: In substitution of 'template using rebind_traits =
allocator_traits > [with _Other = int]':
y.C:12:58:   required from here
y.C:8:46: internal compiler error: in retrieve_specialization, at cp/pt.c:1020
 allocator_traits < allocator < _Other > >;
  ^

[Bug fortran/67039] Documentation of pseudorandom number intrinsics is incorrect

2016-04-06 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67039

--- Comment #6 from Dominique d'Humieres  ---
I am planning to submit the following patch

--- ../_clean/gcc/fortran/intrinsic.texi2016-01-04 19:51:09.0
+0100
+++ gcc/fortran/intrinsic.texi  2016-04-06 17:15:01.0 +0200
@@ -12628,10 +12628,12 @@ Does not return anything.
 See @code{RAND} and @code{IRAND} for examples.

 @item @emph{Notes}:
-The Fortran 2003 standard specifies the intrinsic @code{RANDOM_SEED} to
-initialize the pseudo-random numbers generator and @code{RANDOM_NUMBER}
-to generate pseudo-random numbers. Please note that in
-GNU Fortran, these two sets of intrinsics (@code{RAND},
+The Fortran standard specifies the intrinsic subroutines
+@code{RANDOM_SEED} to initialize the pseudo-random numbers
+generator and @code{RANDOM_NUMBER} to generate pseudo-random numbers.
+These subroutines should be used in new codes.
+
+Please note that in GNU Fortran, these two sets of intrinsics (@code{RAND},
 @code{IRAND} and @code{SRAND} on the one hand, @code{RANDOM_NUMBER} and
 @code{RANDOM_SEED} on the other hand) access two independent
 pseudo-random number generators.

[Bug fortran/52884] double precision constants promoted to 16 byte by -fdefault-real-8

2016-04-06 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52884

--- Comment #2 from Dominique d'Humieres  ---
I am planning to submit the following patch

--- ../_clean/gcc/fortran/invoke.texi   2016-03-13 09:07:16.0 +0100
+++ gcc/fortran/invoke.texi 2016-04-06 20:44:26.0 +0200
@@ -361,9 +361,10 @@ it does not promote variables with expli
 @opindex @code{fdefault-double-8}
 Set the @code{DOUBLE PRECISION} type to an 8 byte wide type.  Do nothing if
this
 is already the default.  If @option{-fdefault-real-8} is given,
-@code{DOUBLE PRECISION} would instead be promoted to 16 bytes if possible, and
+@code{DOUBLE PRECISION} would instead be promoted to 16 bytes if possible,
+as well as double real constants like @code{1.d0}, and
 @option{-fdefault-double-8} can be used to prevent this.  The kind of real
-constants like @code{1.d0} will not be changed by @option{-fdefault-real-8}
+constants like @code{1.0_8} will not be changed by @option{-fdefault-real-8}
 though, so also @option{-fdefault-double-8} does not affect it.

 @item -finteger-4-integer-8

[Bug fortran/52393] I/O: "READ format" statement with parenthesed default-char-expr

2016-04-06 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52393

--- Comment #7 from Dominique d'Humieres  ---
> The code in #5 is missing the initial parenthesised expression that exposes
> the flaw in parsing logic - the left hand operand of the string concatenation
> needs to be `('(')`, and not just the string literal.

Indeed! Note that gfortran accepts '(' // ('A)'), or ('(' // 'A)'). AFAICT the
problem occurs only when the first substring is enclosed in parentheses.

[Bug fortran/52393] I/O: "READ format" statement with parenthesed default-char-expr

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

--- Comment #6 from Ian Harvey  ---
The code in #5 is missing the initial parenthesised expression that exposes the
flaw in parsing logic - the left hand operand of the string concatenation needs
to be `('(')`, and not just the string literal.

[Bug c/70566] Bad ARM code generated for evaluating unsigned int bitfield value

2016-04-06 Thread dan at reactivated dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70566

--- Comment #2 from Daniel Drake  ---
Created attachment 38206
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38206&action=edit
main.i preprocessed output

[Bug c/70566] Bad ARM code generated for evaluating unsigned int bitfield value

2016-04-06 Thread dan at reactivated dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70566

--- Comment #1 from Daniel Drake  ---
Created attachment 38205
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38205&action=edit
other.c test case source

[Bug c/70566] New: Bad ARM code generated for evaluating unsigned int bitfield value

2016-04-06 Thread dan at reactivated dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70566

Bug ID: 70566
   Summary: Bad ARM code generated for evaluating unsigned int
bitfield value
   Product: gcc
   Version: 5.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dan at reactivated dot net
  Target Milestone: ---

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

I have reproduced on gcc-4.9.2, gcc-4.9.3, and gcc-5.3.1 in Debian.

System type: ODROID-U2 (Exynos4412) ARMv7

COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/5/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Debian 5.3.1-13'
--with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs
--enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-5 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm
--disable-libquadmath --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-5-armhf/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-armhf
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-armhf
--with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --disable-sjlj-exceptions
--with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb
--enable-checking=release --build=arm-linux-gnueabihf
--host=arm-linux-gnueabihf --target=arm-linux-gnueabihf
Thread model: posix
gcc version 5.3.1 20160323 (Debian 5.3.1-13) 



With a struct set up with bitfield values like this:

struct mystruct {
unsigned int uid_set : 1;
unsigned int is_loaded : 1;
unsigned int nonexistent : 1;
};

The following C code is compiled to bad ARMv7 assembly under certain
circumstances at -O2:

if (!user->is_loaded) 
set_is_loaded (user, 1);

The resultant bad assembly is:

  14:   7803ldrbr3, [r0, #0]
  16:   079blslsr3, r3, #30
  18:   d400bmi.n   1c 
  1a:   d000beq.n   1e 
  1c:   4770bx  lr
  1e:   e7efb.n 0 

In the bitfield, uid_set is bit 0 and is_loaded is bit 1.

The assembly loads the bitfield value and shifts left to have the value of
is_loaded at bit 31. So the "bmi" instruction makes perfect sense: if is_loaded
is set, jump to some code that is not going to call set_is_loaded.

The following "beq" instruction is bad. Here we have is_loaded at bit 31, but
we also have uid_set at bit 30. So the value of uid_set is clearly going to
influence the code behaviour here: if uid_set is 1, we will not call
set_is_loaded.

This issue originates from freedesktop's accountsservice where I noticed the
incorrect runtime behaviour.

I am attaching a minimal test case which you can compile with:
gcc -O2 -g -c main.c -o out.o
gcc -c other.c -o other.o
gcc other.o out.o -o prog

Run with:

./prog 0
./prog 1

The argument controls the value of uid_set. It should have no effect on the
runtime behaviour, but you'll notice that myfunc is only called when the arg is
0.

Unfortunately I couldn't figure out how to slim down the test case into a
single file, as that resulted in different (working) asm being generated.

I'm also attaching the preprocessed version of main.c.

[Bug preprocessor/69391] [5 Regression] Incorrect __LINE__ expansion with -ftrack-macro-expansion=0 on g++5.2

2016-04-06 Thread rth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69391

Richard Henderson  changed:

   What|Removed |Added

 Status|ASSIGNED|NEW
Summary|[5/6 Regression] Incorrect  |[5 Regression] Incorrect
   |__LINE__ expansion with |__LINE__ expansion with
   |-ftrack-macro-expansion=0   |-ftrack-macro-expansion=0
   |on g++5.2   |on g++5.2

--- Comment #7 from Richard Henderson  ---
Fixed for gcc6.

[Bug preprocessor/60723] Line directives with incorrect system header flag

2016-04-06 Thread rth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60723
Bug 60723 depends on bug 61817, which changed state.

Bug 61817 Summary: Inconsistent location of tokens in the expansion list of a 
built-in macro
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61817

   What|Removed |Added

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

[Bug preprocessor/61817] Inconsistent location of tokens in the expansion list of a built-in macro

2016-04-06 Thread rth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61817

Richard Henderson  changed:

   What|Removed |Added

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

--- Comment #5 from Richard Henderson  ---
Fixed.

[Bug preprocessor/61817] Inconsistent location of tokens in the expansion list of a built-in macro

2016-04-06 Thread rth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61817

--- Comment #4 from Richard Henderson  ---
Author: rth
Date: Wed Apr  6 18:35:16 2016
New Revision: 234794

URL: https://gcc.gnu.org/viewcvs?rev=234794&root=gcc&view=rev
Log:
PR preprocessor/61817
PR preprocessor/69391

  * internal.h (_cpp_builtin_macro_text): Update decl.
  * macro.c (_cpp_builtin_macro_text): Accept location for __LINE__.
  (builtin_macro): Accept a second location for __LINE__.
  (enter_macro_context): Compute both virtual and real expansion
  locations for the macro.

  * gcc.dg/pr61817-1.c: New test.
  * gcc.dg/pr61817-2.c: New test.
  * gcc.dg/pr69391-1.c: New test.
  * gcc.dg/pr69391-2.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr61817-1.c
trunk/gcc/testsuite/gcc.dg/pr61817-2.c
trunk/gcc/testsuite/gcc.dg/pr69391-1.c
trunk/gcc/testsuite/gcc.dg/pr69391-2.c
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libcpp/ChangeLog
trunk/libcpp/internal.h
trunk/libcpp/macro.c

[Bug preprocessor/69391] [5/6 Regression] Incorrect __LINE__ expansion with -ftrack-macro-expansion=0 on g++5.2

2016-04-06 Thread rth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69391

--- Comment #6 from Richard Henderson  ---
Author: rth
Date: Wed Apr  6 18:35:16 2016
New Revision: 234794

URL: https://gcc.gnu.org/viewcvs?rev=234794&root=gcc&view=rev
Log:
PR preprocessor/61817
PR preprocessor/69391

  * internal.h (_cpp_builtin_macro_text): Update decl.
  * macro.c (_cpp_builtin_macro_text): Accept location for __LINE__.
  (builtin_macro): Accept a second location for __LINE__.
  (enter_macro_context): Compute both virtual and real expansion
  locations for the macro.

  * gcc.dg/pr61817-1.c: New test.
  * gcc.dg/pr61817-2.c: New test.
  * gcc.dg/pr69391-1.c: New test.
  * gcc.dg/pr69391-2.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr61817-1.c
trunk/gcc/testsuite/gcc.dg/pr61817-2.c
trunk/gcc/testsuite/gcc.dg/pr69391-1.c
trunk/gcc/testsuite/gcc.dg/pr69391-2.c
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libcpp/ChangeLog
trunk/libcpp/internal.h
trunk/libcpp/macro.c

[Bug c++/70565] ICE at gimplify.c:8832 (cilkplus array extension)

2016-04-06 Thread yves.vandriessche at intel dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70565

--- Comment #1 from Yves Vandriessche  ---
Additionally, the same internal compile error is produced when substituting:

>  cilk_for ( int row = 0; row < nrows; row++ ) {

with

>#pragma omp parallel scheduler(dynamic, 256)
>  for ( int row = 0; row < nrows; row++ ) {

[Bug c++/70565] New: ICE at gimplify.c:8832 (cilkplus array extension)

2016-04-06 Thread yves.vandriessche at intel dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70565

Bug ID: 70565
   Summary: ICE at gimplify.c:8832 (cilkplus array extension)
   Product: gcc
   Version: 5.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: yves.vandriessche at intel dot com
  Target Milestone: ---

Created attachment 38203
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38203&action=edit
test case producing ICE in gimplify_expr, at gimplify.c:8832

using: gcc (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
running on: Ubuntu-5.10

Attached file produces the following ICE

> test.cpp:11:18: internal compiler error: in gimplify_expr, at 
> gimplify.c:8832

with the guilty code segment in question being:

> cilk_for ( int row = 0; row < nrows; row++ ) {
>   int row_nnz = nrows/2;
>   int col_offsets[row_nnz];
>   col_offsets[:] = __sec_implicit_index(0);
> }

Note that I do not get an ICE when using a regular 'for' instead of the above
'cilk_for'.

[Bug bootstrap/70519] genmatch fails to compile under gcc-5.2.0 - missing '-lstdc++' .

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70519

--- Comment #10 from Jakub Jelinek  ---
(In reply to Jason Vas Dias from comment #9)
> (In reply to Jakub Jelinek from comment #8)
> > Where do you see -nostdlib being used?  I see it neither in your #c0, nor in
> > #c1.
> > Looking at my buildlog, -nostdlib is used to link only some libraries, like
> > libstdc++.so.6 itself, or libvtv, libsanitizer libraries,
> > libcc1/libcc1plugin, libcilkrts, libgcj, libgcj_bc, libgij, libjvm,
> > libgcj-tools, but certainly not when linking build/*, or gcov, or cc1, ...
> 
> Yes, sorry, -nostdlib is not being used explicitly - but we seem to be 
> getting the same effect with xg++ .

Only you seem to be getting that effect, for everybody else it works just fine.
So the question is why it doesn't work for you.

[Bug libstdc++/70564] New: Problem with std::experimental::not_fn

2016-04-06 Thread rcc.dark at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70564

Bug ID: 70564
   Summary: Problem with std::experimental::not_fn
   Product: gcc
   Version: 5.2.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: rcc.dark at gmail dot com
  Target Milestone: ---

Hi all. The following code does not compile under MinGW-64 GCC 5.2.0 / Linux-64
GCC 5.3.1:

#include 
#include 

int main( )
{
   auto lambda = [](auto i) {
  return i == 5;
   };

   std::array arr;
   std::find_if(arr.begin( ), arr.end( ), std::experimental::not_fn(lambda));
}

Inside std::find_if, an object of the _Iter_Pred class is created:

  _Iter_pred(_Predicate __pred)
: _M_pred(__pred)
  { }

which calls _Not_fn(_Not_fn&) since __pred is an lvalue. However,
between these _Not_fn constructors:

  template
explicit
_Not_fn(_Fn2&& __fn) : _M_fn(std::forward<_Fn2>(__fn)) { }

_Not_fn(const _Not_fn& __fn) = default;
_Not_fn(_Not_fn&& __fn) = default;

the first one wins and triggers an error.

[Bug bootstrap/70519] genmatch fails to compile under gcc-5.2.0 - missing '-lstdc++' .

2016-04-06 Thread jason.vas.dias at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70519

--- Comment #9 from Jason Vas Dias  ---
(In reply to Jakub Jelinek from comment #8)
> Where do you see -nostdlib being used?  I see it neither in your #c0, nor in
> #c1.
> Looking at my buildlog, -nostdlib is used to link only some libraries, like
> libstdc++.so.6 itself, or libvtv, libsanitizer libraries,
> libcc1/libcc1plugin, libcilkrts, libgcj, libgcj_bc, libgij, libjvm,
> libgcj-tools, but certainly not when linking build/*, or gcov, or cc1, ...

Yes, sorry, -nostdlib is not being used explicitly - but we seem to be 
getting the same effect with xg++ .

The problem is then that the stage2 xg++ is not adding -lstd++ automatically, 
and the scripts are not adding it to the stage2 configure's LDFLAGS - I think
they should be, or the part of them that is meant to be doing this has failed
to do so in my case . 
Any pointers as to where precisely in the build script code to look for where
-lstdc++ should be being added to the stage2 build LDFLAGS , or is it that 
xg++ should have been adding -lstdc++ if required , but wasn't ? 
Some clarification on that last point would be greatly appreciated.

[Bug bootstrap/70519] genmatch fails to compile under gcc-5.2.0 - missing '-lstdc++' .

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70519

--- Comment #8 from Jakub Jelinek  ---
Where do you see -nostdlib being used?  I see it neither in your #c0, nor in
#c1.
Looking at my buildlog, -nostdlib is used to link only some libraries, like
libstdc++.so.6 itself, or libvtv, libsanitizer libraries, libcc1/libcc1plugin,
libcilkrts, libgcj, libgcj_bc, libgij, libjvm, libgcj-tools, but certainly not
when linking build/*, or gcov, or cc1, ...

[Bug bootstrap/70519] genmatch fails to compile under gcc-5.2.0 - missing '-lstdc++' .

2016-04-06 Thread jason.vas.dias at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70519

--- Comment #7 from Jason Vas Dias  ---
So since I've produced a working Stage3 compiler in the build directory, './',
'./prev-gcc' should be the directory containing the Stage2 gcc build, and
it does in my case, with a config.log :


$ grep '^LDFLAGS=' prev-gcc/config.log
LDFLAGS='-static-libstdc++ -static-libgcc '

Now I think that this command should produce the output :


$ grep '^LDFLAGS=' prev-gcc/config.log
LDFLAGS='-static-libstdc++ -static-libgcc -lstdc++'

because we know that all the executables are produced with xg++  
given the '-nostdlib' option, and all C++ executables should be
linked against libstdc++ .

My question is simply why isn't the missing '-lstdc++' there ?

Next question: where is the code that is meant to be adding it somehow ?

[Bug c++/70029] [6 Regression] ICE with C++11 and -flto

2016-04-06 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70029

--- Comment #7 from Jan Hubicka  ---
Hmm, both options sounds quite involved. Perhaps for stage4 we can simply drop
the sanity check and add yet another FIXME to the verifier? Alias.c is
relatively robust about walking to main variants so I can't think of wrong code
issue caused by this.

Honza

Index: tree.c
===
--- tree.c  (revision 234761)
+++ tree.c  (working copy)
@@ -13584,7 +13584,8 @@ verify_type (const_tree t)
   debug_tree (ct);
   error_found = true;
 }
-  if (TYPE_MAIN_VARIANT (t) == t && ct && TYPE_MAIN_VARIANT (ct) != ct)
+  /* FIXME: this is volated by C++ frontend as discussed in PR70029.  */
+  if (TYPE_MAIN_VARIANT (t) == t && ct && TYPE_MAIN_VARIANT (ct) != ct && 0)
{
   error ("TYPE_CANONICAL of main variant is not main variant");
   debug_tree (ct);
Index: testsuite/g++.dg/torture/pr70029.C
===
--- testsuite/g++.dg/torture/pr70029.C  (revision 0)
+++ testsuite/g++.dg/torture/pr70029.C  (working copy)
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-std=c++11 -g -flto" } */
+/* { dg-require-effective-target lto } */
+struct A
+{
+  A();
+  int foo() && __attribute__ ((__warn_unused_result__)) { return 0; }
+};
+
+A a;
+

[Bug c++/66487] sanitizer/warnings for lifetime DSE

2016-04-06 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66487

Jan Hubicka  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-04-06
Summary|[6 Regression] Firefox  |sanitizer/warnings for
   |segfault with LTO enabled   |lifetime DSE
 Ever confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #19 from Jan Hubicka  ---
Martin, I suppose the sanitizer bits can be tracked as enhancement and not
regression. It is a firefox bug so I suppose we can declare this a
non-regression.

[Bug rtl-optimization/70398] [6 Regression] gcc.dg/vect/slp-multitypes-9.c FAILs with -fno-tree-loop-optimize -fno-tree-ter

2016-04-06 Thread vmakarov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70398

--- Comment #3 from Vladimir Makarov  ---
Author: vmakarov
Date: Wed Apr  6 16:48:36 2016
New Revision: 234792

URL: https://gcc.gnu.org/viewcvs?rev=234792&root=gcc&view=rev
Log:
2016-04-06  Vladimir Makarov  

PR rtl-optimization/70398
* lra-constraints.c (process_address_1): Check zero scale and code
for reloading with zero scale.

2016-04-06  Vladimir Makarov  

PR rtl-optimization/70398
* testsuite/gcc.target/aarch64/pr70398.c: New.


Added:
trunk/gcc/testsuite/gcc.target/aarch64/pr70398.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/lra-constraints.c
trunk/gcc/testsuite/ChangeLog

[Bug c++/70563] New: SFINEA fails when trying invalid template instantiation

2016-04-06 Thread webmaster at havogt dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70563

Bug ID: 70563
   Summary: SFINEA fails when trying invalid template
instantiation
   Product: gcc
   Version: 5.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: webmaster at havogt dot de
  Target Milestone: ---

vogt@fermi03:~/temp2> cat test_SFINAE_with_template_binding.ii 
# 1 "test_SFINAE_with_template_binding.cc"
# 1 ""
# 1 ""
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "" 2
# 1 "test_SFINAE_with_template_binding.cc"




template using void_t = void;

template struct TemporaryBindObject
{
};

struct MyTrueType
{
 static constexpr bool value = true;
};

struct MyFalseType
{
 static constexpr bool value = false;
};

template class Dest> struct TestValidBind
{
 template> struct toTypesOf : MyFalseType
 {};
 template class Src, typename... Ts> struct
toTypesOf, void_t>> : MyTrueType
 {};
};

template struct OneParamStruct
{
};
template struct TwoParamStruct
{
};

using tmp = TemporaryBindObject;

int main()
{
 bool value1 =
TestValidBind::toTypesOf>::value;
 bool value2 =
TestValidBind::toTypesOf>::value;




}
vogt@fermi03:~/temp2> g++-5 -std=c++11 test_SFINAE_with_template_binding.ii
test_SFINAE_with_template_binding.cc: In function ‘int main()’:
test_SFINAE_with_template_binding.cc:41:16: error: incomplete type
‘TestValidBind::toTypesOf >’ used in
nested name specifier
  bool value2 =
TestValidBind::toTypesOf>::value;
^
vogt@fermi03:~/temp2> g++-5 --version
g++-5 (SUSE Linux) 5.3.1 20160301 [gcc-5-branch revision 233849]
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


The example works with clang. I am not a standard expert to decide who is
right. Actually, a simplified version works with gcc, however I don't see the
reason why this shouldn't, see http://stackoverflow.com/a/36411945/5085250


Same problem with
vogt@fermi03:~/temp2> g++-6 --version
g++-6 (SUSE Linux) 6.0.0 20160324 (experimental) [trunk revision 234449]
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[Bug c/63336] cilkplus array notation ICE in find_rank

2016-04-06 Thread yves.vandriessche at intel dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63336

Yves Vandriessche  changed:

   What|Removed |Added

 CC||yves.vandriessche at intel dot 
com

--- Comment #8 from Yves Vandriessche  ---
reconfirming for g++ (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010

compiling with -std-gnu++11 -fcilkplus

I did find a workaround: I do not get the error if I avoid using the array
notation extension on a member. Using a local variable that takes on the
pointer value of the member compiles perfectly.

> struct Test {
>   int nrows;
>   int * rows;
>   Test(int _nrows, int * in_rows): nrows(_nrows) {
> rows = new int[nrows + 1];
> 
> // internal compiler error: in find_rank, at 
> c-family/array-notation-common.c:244
> rows[0:nrows+1] = 0;
> 
> // // workaround
> // int * _rows = rows;
> // _rows[0:nrows+1] = 0;
>   }
> };
> 
> int main() {
>   Test t{1024*1024, nullptr};
> }

[Bug bootstrap/70519] genmatch fails to compile under gcc-5.2.0 - missing '-lstdc++' .

2016-04-06 Thread jason.vas.dias at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70519

--- Comment #6 from Jason Vas Dias  ---
Yes, Jakub, thanks, I know :
> If you link with g++ or xg++ instead of gcc or xgcc, then the driver is 
> adding 
> -lstdc++ automatically.

But it is not ME linking, it is the gcc-5.3.0 Makefile.in / configure.ac
scripts .

It seems to me on cursory inspection of these huge scripts that neither of them
are explicitly adding '-lstdc' anywhere onto the link lines for xg++ links, nor 
to LDFLAGS or ALL_LINKERFLAGS or BUILD_LDFLAGS or any link line containing
LDFLAGS
, as shown by this grep in the unmodified GCC 5.3.0 source directory:
[root@localhost:/usr/os_src/gcc-5.3.0 [4360] 16:23:17 #:8!:4399]
$ egrep '(LINKER|LD)FLAGS' Makefile.in Makefile.def Makefile.tpl
gcc/Makefile.in | egrep -i stdc\\+\\+\|stdc\[xp\]+
[root@localhost:/usr/os_src/gcc-5.3.0 $

ie. no references to 'stdc++' or stdcxx (case insensitive) in any line
containing
LDFLAGS or LINKER in any make script .

So it is very difficult to find the exact line of code that is meant to be 
adding the '-lstdc++' and somehow failed to do so in my case ! 

Is it meant to be added to LDFLAGS during the stage2 gcc configure using xg++
as the compiler ($CC) ? A search of the huge configure.ac scripts yields no
results :

$ egrep '(LINKER|LD)FLAGS' configure.ac gcc/configure.ac | egrep -i
stdc\\+\\+\|stdc\[xp]+
configure.ac:  LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc"
$

So how are the build scripts meant to be adding '-lstdc++' to the link lines
of executables produced by the stage2 xg++ ? This is far from clear.

[Bug fortran/52393] I/O: "READ format" statement with parenthesed default-char-expr

2016-04-06 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52393

--- Comment #5 from Dominique d'Humieres  ---
Note that the following test compiles with gfortran from at least 4.8 up to
trunk (6.0)

PROGRAM ReadMeTwo
  IMPLICIT NONE
  CHARACTER(10) :: var
  READ '('//'A)', var  
  PRINT *, var
END PROGRAM ReadMeTwo

[Bug fortran/47040] Make error message for empty array constructor more helpful/correct

2016-04-06 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47040

--- Comment #6 from Dominique d'Humieres  ---
Patch submitted at https://gcc.gnu.org/ml/fortran/2016-04/msg00024.html.

[Bug c++/70543] [6 Regression] wrong non-const error for enable_if and constexpr function

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70543

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-04-06
 CC||jakub at gcc dot gnu.org,
   ||jason at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #3 from Jakub Jelinek  ---
The #c0 changed behavior with r226652.
And the #c2 looks like PR70528.

[Bug c++/70501] [6 Regression] internal compiler error: in verify_ctor_sanity, at cp/constexpr.c:2249

2016-04-06 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70501

--- Comment #3 from Nathan Sidwell  ---
https://gcc.gnu.org/ml/gcc-patches/2016-04/msg00191.html

but read the thread for why that's not the best patch.  Continuing ...

[Bug c++/68159] Demangler crash (GDB PR 19190)

2016-04-06 Thread curlypaul924 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68159

Paul Brannan  changed:

   What|Removed |Added

 CC||curlypaul924 at gmail dot com

--- Comment #8 from Paul Brannan  ---
I am able to reproduce this segfault with the above instructions on gdb 7.11.

[Bug fortran/66605] -Wunused-parameter causes internal compiler error with gfortran 5.1.0

2016-04-06 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66605

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |FIXED

--- Comment #20 from Dominique d'Humieres  ---
Fixed on trunk (6.0), closing.

[Bug target/70559] Miscompilation of nsTextFormatter.cpp from Firefox with -Os -fomit-frame-pointer

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70559

--- Comment #4 from Jakub Jelinek  ---
Seems this got fixed (or is dup of) PR64905, r220416 in particular, but you
want r220414 and r220441 too.

[Bug bootstrap/70519] genmatch fails to compile under gcc-5.2.0 - missing '-lstdc++' .

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70519

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek  ---
If you link with g++ or xg++ instead of gcc or xgcc, then the driver is adding
-lstdc++ automatically.

[Bug ipa/70348] [6 Regression][openacc] ICE in visit_ref_for_mod_analysis, at ipa-prop.c

2016-04-06 Thread cesar at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70348

--- Comment #9 from cesar at gcc dot gnu.org ---
The patch I posted for PR70289 a couple of days ago also resolves this issue:
https://gcc.gnu.org/ml/gcc-patches/2016-04/msg00202.html

[Bug bootstrap/70519] genmatch fails to compile under gcc-5.2.0 - missing '-lstdc++' .

2016-04-06 Thread jason.vas.dias at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70519

--- Comment #4 from Jason Vas Dias  ---
Thanks for having a look at this, Richard .

Yes, "some weirdness" is definitely going on -
but I'd like to determine precisely which "weirdness". 

This occurred when building my new LFS system's system compiler
for the first time, with a GCC-5.2.0 instance built for RHEL-6,
whose installation directories were all mounted with the 'bind'
option ( /usr/lib/gcc/x86_64-redhat-linux/5.2.0 ,
 /usr/libexec/gcc/x86_64-redhat-linux/5.2.0 , etc. )
and where $PATH picked up all gcc binaries from a 
'bin/' directory containing links like :
   gcc -> /${path_to_rhel6_usr_bin}/gcc5.2.0 
   ... etc.

My configure options were :

/usr/os_src/gcc-5.3.0/configure --prefix=/usr --libdir=/usr/lib64
--enable-shared \
  --enable-languages=all \
  --enable-bootstrap \
  --enable-multilib \
  --with-cpu-64=haswell \
  --with-cpu-32=atom \
  --with-arch-64=x86-64 \
  --with-tune-64=haswell \
  --with-arch-32=i686 \
  --with-tune-32=atom \
  --enable-targets=all \
  --enable-threads=posix \
  --enable-lto \
  --enable-serial-configure \
  --enable-checking=release \
  --with-stage1-ldflags='-L/usr/lib64 -L/usr/local/lib64 -L/usr/lib32
-L/usr/local/lib32
-Wl,-R,/usr/lib64:/usr/local/lib64:/usr/lib32:/usr/local/lib32' \
  --with-gmp=/usr   --with-gmp-lib=/usr/lib64 \
  --with-mpfr=/usr  --with-mpfr-lib=/usr/lib64 \
  --with-mpc=/usr   --with-mpc-lib=/usr/lib64 \
  --with-isl=/usr   --with-isl-lib=/usr/lib64 \
  --with-cloog=/usr --with-cloog-lib=/usr/lib64 \
  --with-gnu-ld \
  --with-gnu-as \
  --enable-linker-build-id \
  --disable-libunwind-exceptions \
  --disable-nls \
  --enable-version-specific-runtime-libs \
  --enable-__cxa_atexit \
  --without-x \
  --disable-gtk-cairo \
  --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre \
  --enable-libgcj-multifile \
  --with-ecj-jar=/usr/share/java/eclipse-ecj.jar \
  --with-system-zlib \
  --enable-java-home \
  --with-arch-directory=x86_64 \
  --disable-libjava-multilib \
  --build=x86_64-pc-linux-gnu \
  --host=x86_64-pc-linux-gnu


I had to radically modify the ./gcc/Makefile of the build directory 
to add '-static-libstdc++ -lstdc++' to EVERY executable's link command ,
finally the 'make' completed with 0 exit status, and 'make DESTDIR=... install' 
created the installation directory , and the test suite passed (with some
expected failures - details on request). 

The translated gcc/Makefile.in produced a gcc/Makefile containing  :

LDFLAGS = -static-libstdc++ -static-libgcc

Note: no -lstdc++ - I think the '-static-libstdc++' option on its own
does NOT imply '-lstdc++' - you have to add it to actually link against
libstdc++.a .

So that is what I did , modifying the above lines:

NEEDS_STDCXX = -static-libstdc++ -lstdc++
LDFLAGS = -static-libgcc $(NEEDS_STDCXX)

and I had to add this into many other places where an executable
is being produced and LDFLAGS is not referenced:

...
ALL_LINKERFLAGS = $(ALL_CXXFLAGS) -static-libgcc $(NEEDS_STDCXX)
...

# For stage1 and when cross-compiling use the build libcpp which is
# built with NLS disabled.  For stage2+ use the host library and
# its dependencies.
ifeq ($(build_objdir),$(build_libobjdir))
BUILD_CPPLIB = $(build_libobjdir)/libcpp/libcpp.a
else
BUILD_CPPLIB = $(CPPLIB) $(LIBIBERTY) 
build/genmatch$(build_exeext): BUILD_LIBDEPS += $(LIBINTL_DEP) $(LIBICONV_DEP) 
build/genmatch$(build_exeext): BUILD_LIBS += $(LIBINTL) $(LIBICONV)
$(NEEDS_STDCXX)
endif

...


I suggest making the gcc/Makefile.in / $TOPDIR/{configure.ac,Makefile.am}
add '-lstdc++' every time it writes '-static-libstdc++' to the Makefile ,
eg. $TOPDIR/configure.ac @ line 1376:

# Check whether -static-libstdc++ -static-libgcc is supported.
have_static_libs=no
if test "$GCC" = yes; then
  saved_LDFLAGS="$LDFLAGS"

  LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc"
#   ^- add ' -lstdc++' here

@ line 1718:

[stage1_ldflags=
 # In stage 1, default to linking libstdc++ and libgcc statically with GCC
 # if supported.  But if the user explicitly specified the libraries to use,
 # trust that they are doing what they want.
 if test "$stage1_libs" = "" -a "$have_static_libs" = yes; then
   stage1_ldflags="-static-libstdc++ -static-libgcc"
 # ^- add ' -lstdc++' here

 fi])


@ line 1741:

[poststage1_ldflags=
 # In stages 2 and 3, default to linking libstdc++ and libgcc
 # statically.  But if the user explicitly specified the libraries to
 # use, trust that they are doing what they want.
 if test "$poststage1_libs" = ""; then
   poststage1_ldflags="-static-libstdc++ -static-libgcc"
 # ^- add ' -lstdc++' here
 fi])


I can't put my finger on the component that is meant to add '-lstdc++' 
to the poststage1_ldflags if not above modified lines ATM - what is meant
to be doing this ?

I will try building with the configure.ac so modified n

[Bug ipa/70559] Miscompilation of nsTextFormatter.cpp from Firefox with -Os -fomit-frame-pointer

2016-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70559

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-04-06
  Known to work||5.3.0
 Ever confirmed|0   |1
  Known to fail||4.8.5, 4.9.3

--- Comment #3 from Richard Biener  ---
Confirmed with 4.9.3 and branch head and 4.8.[15].

int dosprintf(SprintfState*, const char16_t*, __va_list_tag*) (struct
SprintfState * aState, const char16_t * aFmt, struct  * aAp)
{
..
  char16_t c;
..
  :
  # aFmt_8 = PHI 
  # DEBUG aFmt => aFmt_8
  [/home/glandium/gecko/xpcom/glue/nsTextFormatter.cpp : 857:24] aFmt_95 =
aFmt_8 + 2;
  [/home/glandium/gecko/xpcom/glue/nsTextFormatter.cpp : 857:24] # DEBUG aFmt
=> aFmt_95
  [/home/glandium/gecko/xpcom/glue/nsTextFormatter.cpp : 857:3] c_96 =
[/home/glandium/gecko/xpcom/glue/nsTextFormatter.cpp : 857] *aFmt_8;
  [/home/glandium/gecko/xpcom/glue/nsTextFormatter.cpp : 857:3] # DEBUG c =>
c_96
  [/home/glandium/gecko/xpcom/glue/nsTextFormatter.cpp : 857:3] if (c_96 != 0)

so everything fine on GIMPLE.  GCC 5 is confirmed fixed.

[Bug ipa/70348] [6 Regression][openacc] ICE in visit_ref_for_mod_analysis, at ipa-prop.c

2016-04-06 Thread tschwinge at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70348

Thomas Schwinge  changed:

   What|Removed |Added

   Assignee|tschwinge at gcc dot gnu.org   |cesar at gcc dot gnu.org

--- Comment #8 from Thomas Schwinge  ---
Cesar is now looking into resolving the OpenACC reduction issues.

[Bug fortran/55427] [OOP] ICE with class-array-pointer result

2016-04-06 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55427

Paul Thomas  changed:

   What|Removed |Added

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

--- Comment #5 from Paul Thomas  ---
>From the ChangeLogs, one of r219801 (pr61275, pr60357) or r219802 (pr64578)
look the most likely to me.

Closing the PR

Paul

[Bug middle-end/70550] -Wuninitialized false positives in OpenMP code

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70550

Jakub Jelinek  changed:

   What|Removed |Added

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

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

[Bug fortran/60853] Failure to disambiguate generic with unlimited polymorphic

2016-04-06 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60853

Dominique d'Humieres  changed:

   What|Removed |Added

 CC||baradi09 at gmail dot com

--- Comment #2 from Dominique d'Humieres  ---
*** Bug 70562 has been marked as a duplicate of this bug. ***

[Bug fortran/70562] User defined assignment does not distinguish between ranks

2016-04-06 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70562

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Dominique d'Humieres  ---
Duplicate of pr60853.

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

[Bug middle-end/70561] Crash in recog_for_combine_1

2016-04-06 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70561

Dominik Vogt  changed:

   What|Removed |Added

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

--- Comment #3 from Dominik Vogt  ---
Solved with Uli's help by removing the "parallal" from the
define_insn_and_split.

[Bug fortran/70562] New: User defined assignment does not distinguish between ranks

2016-04-06 Thread baradi09 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70562

Bug ID: 70562
   Summary: User defined assignment does not distinguish between
ranks
   Product: gcc
   Version: 5.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: baradi09 at gmail dot com
  Target Milestone: ---

User defined assignment for derived types fails to compile, if the signature of
the various assignments only differ in their rank. The snippet further below
fails to compile with the error message

 generic :: assignment(=) => assignScalar, assignArray
   1
Error: ‘assignscalar’ and ‘assignarray’ for GENERIC ‘=’ at (1) are ambiguous

although the two interfaces are not ambiguous, as their differ in ther ranks.

Best regards, Bálint


module typedefs
  implicit none

  type :: tt
integer :: data(2)
  contains
procedure :: assignScalar
procedure :: assignArray
generic :: assignment(=) => assignScalar, assignArray
  end type tt

contains

  subroutine assignScalar(this, other)
class(tt), intent(inout) :: this
class(*), intent(in) :: other

print *, "assignScalar"

  end subroutine assignScalar


  subroutine assignArray(this, other)
class(tt), intent(inout) :: this
class(*), intent(in) :: other(:)

print *, "assignScalar"

  end subroutine assignArray

end module typedefs

[Bug target/70557] uint64_t zeroing on 32-bit hardware

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70557

--- Comment #6 from Jakub Jelinek  ---
In that case it is a backend enhancement request.  Backends have many ways how
to deal with this, starting from specialized patterns, or using the lower
subreg passes, using their own splitters etc. and many of the actively
maintained backends handle this right.

[Bug c++/39159] unhelpful attribute warning on matching declaration after definition

2016-04-06 Thread gw.fossdev at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39159

--- Comment #6 from Gert  ---
I forgot to mention: the patch is against 5.3.0.

[Bug fortran/55427] [OOP] ICE with class-array-pointer result

2016-04-06 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55427

Dominique d'Humieres  changed:

   What|Removed |Added

 CC|dominiq at lps dot ens.fr  |

--- Comment #4 from Dominique d'Humieres  ---
> This is fixed on trunk and GNU Fortran (GCC) 5.1.1 20150618 (Red Hat 5.1.1-4).
> Your example even runs correctly!

The ICE is gone with at least 4.9.3, but this leads to wrong code

 F

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  0x1026dd7b2
#1  0x1026ddf6e
#2  0x7fff8f042529
#3  0x1026d7b38
#4  0x1026d7cd0
Segmentation fault

> I have added Dominique to the CC list in the hope that he can pin down
> better when it was fixed. He seems to maintain the world's largest collection
> of archaic gcc's :-)

Well this fall in one my blind spots!-( 

The ICE disappeared between revisions r201266 (2013-07-26, ICE) and r201631
(2013-08-09, wrong code). In this range, I see r201284 (pr57285), r201286
(pr57991), r201294 (pr58009), r201328 and r201329 (pr57530), r201521 (pr57306),
and r201526 (pr57987). I did not look in detail at these PRs, but I think it is
related to/duplicate of pr57530.

The wrong code has been fixed between revisions r219797 (2015-01-17, wrong
code) and r219823 (2015-01-18, expected results). In this range, I see r219798
(pr60334), r219801 (pr61275, pr60357), r219802 (pr64578), r219814 (pr55901),
and r219818 (pr57959). I let you pick the candidate.

> This can be closed once we pin down approximately when it was fixed.

[Bug target/70557] uint64_t zeroing on 32-bit hardware

2016-04-06 Thread acahalan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70557

--- Comment #5 from Albert Cahalan  ---
This example shows the most simple form of the problem:

unsigned long long ull;
void simple64(void){
ull = 0;
}

NOTE: In the assembly below, I might have missing/excess parentheses. Assembler
syntax varies.

gcc generates:

clr.L %d0
clr.L %d1
move.L %d0,ull
move.L %d1,ull+4

As you can see, two registers are set to the same value. It's better to set
just one, and even better to directly address memory with a clr.L instruction.

Also, given that this code was optimized for size and there was an address
register free, gcc should have put the address of ull into a register and then
used that, preferably with autoincrement addressing.

I'd like to see something like this:

movea.L ull, %a0
clr.L (%a0)+
clr.L (%a0)

When optimizing for speed and registers are not available, maybe this:

clr.L ull
clr.L ull+4

(the code is larger with those 6-byte instructions though, and it might
actually run slower especially considering the small cache)

[Bug target/67478] gcc-5.1.0/gcc-5.2.0 undefined symbol std::__once_callable in AIX 6.1

2016-04-06 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67478

--- Comment #10 from David Edelsohn  ---
The libstdc++ build process was updated to recognize LTS symbols.  Please use
GCC 5.3 or later.

[Bug c++/39159] unhelpful attribute warning on matching declaration after definition

2016-04-06 Thread gw.fossdev at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39159

Gert  changed:

   What|Removed |Added

 CC||gw.fossdev at gmail dot com

--- Comment #5 from Gert  ---
Created attachment 38202
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38202&action=edit
Proposed patch to silence the warning if the new attribute is same

Hello, 

I propose the attached patch for this. I'm flying blind here and the patch is
not yet tested. 

The idea is to search whether the attribute to be applied is already set and if
this is the case, to not emit a warning, and otherwise to rephrase the warning
pointing out that a different attribute was specified. 

The code was inspired by the lines starting from 589 in the same file
gcc/attribs.c. 

Now since I don't know whether simple_cst_equal really compares the value of
the attribute, or just some attribute type, it may be that the code does not do
what I hope to achieve. 

Any comments how to improve the patch are very welcome. 

Best, 
Gert

[Bug middle-end/70550] -Wuninitialized false positives in OpenMP code

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70550

--- Comment #3 from Jakub Jelinek  ---
Author: jakub
Date: Wed Apr  6 12:42:24 2016
New Revision: 234779

URL: https://gcc.gnu.org/viewcvs?rev=234779&root=gcc&view=rev
Log:
PR middle-end/70550
* tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
* gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
firstprivate clauses.
* omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
(lower_omp_target): Set TREE_NO_WARNING for
non-addressable possibly uninitialized vars which are copied into
addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.

* c-c++-common/gomp/pr70550-1.c: New test.
* c-c++-common/gomp/pr70550-2.c: New test.

Added:
trunk/gcc/testsuite/c-c++-common/gomp/pr70550-1.c
trunk/gcc/testsuite/c-c++-common/gomp/pr70550-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimplify.c
trunk/gcc/omp-low.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree.h

[Bug target/70557] uint64_t zeroing on 32-bit hardware

2016-04-06 Thread acahalan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70557

--- Comment #4 from Albert Cahalan  ---
Mostly it's more like PR58741 because of the long long issue.

PR22141 (and PR23684 which is a better match) is about merging small things.
Two of the six examples here show that problem, those being the ones with a
loop over char.

The problem that prompted this bug report and determined the bug title is
different. It's in some way the opposite. When I ask gcc to store a 64-bit zero
value, gcc makes a 64-bit zero value in memory (two identical 32-bit halves in
a pair of 32-bit registers) and then stores that to memory.

There are many ways that this is wrong, and I worry that fixing one problem may
hide the other problems. Depending on compiler internals that I don't
understand, this could perhaps be four bugs:

1. When the two halves of a 64-bit value are identical, there is no need to
load values into two different registers. This is true for many constant
values, though obviously -1 and 0 would be most popular. Other popular values
would be the constants for computing a Hamming weight. AFAIK, this optimization
should apply whenever dealing with values that are larger than registers, such
as 128-bit values on 64-bit platforms.

2. When the address is to be encoded in the instruction that writes to memory,
it is best to directly clear the memory without first generating the constant
in registers. AFAIK, this optimization should apply to most CISC machines. The
fact that there is a special instruction for storing a 0 makes the optimization
more important.

3. When the address is to be encoded in an instruction, sometimes it is best to
place the address in a register and then use that register to supply the
address for storing to memory. This tends to apply when doing lots of writes,
when an address register happens to be available, and when optimizing for size.
AFAIK this optimization applies to most machines.

4. When using an address register to supply the location for storing, often it
is best to use autoincrement addressing instead of distinct offsets. This
usually generates smaller code. AFAIK this applies to many machines, including
at least: arm, m68k, and ppc.

(and also the store-merge issue, which makes 5)

[Bug middle-end/70561] Crash in recog_for_combine_1

2016-04-06 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70561

--- Comment #2 from Dominik Vogt  ---
(Ah, probably add_clobbers should have added the clobber, but it hasn't.  It
doesn't have any code for that pattern.)

[Bug c++/70549] insn does not satisfy its constraints aarch64 gcc-4.8

2016-04-06 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70549

--- Comment #6 from Christophe Lyon  ---
I've reproduced it too with our latest 4.8, and I confirm it compiles OK with
the very first commit in branch 4.9.

Since you switched to 4.9, I will not investigate more.

[Bug middle-end/70561] Crash in recog_for_combine_1

2016-04-06 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70561

--- Comment #1 from Dominik Vogt  ---
P.S.:

(gdb) p debug_rtx(pat)
(set (reg:SI 67 [+4 ])
(and:SI (not:SI (subreg:SI (reg/v:DI 65 [ b+-4 ]) 4))
(mem:SI (plus:DI (reg:DI 2 %r2 [ a ])
(const_int 4 [0x4])) [1 *a_2(D)+4 S4 A32])))
$13 = void
(gdb) p debug_rtx(newpat)
(parallel [
(set (reg:SI 67 [+4 ])
(and:SI (not:SI (subreg:SI (reg/v:DI 65 [ b+-4 ]) 4))
(mem:SI (plus:DI (reg:DI 2 %r2 [ a ])
(const_int 4 [0x4])) [1 *a_2(D)+4 S4 A32])))
(nil)
])
$14 = void

[Bug middle-end/70561] New: Crash in recog_for_combine_1

2016-04-06 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70561

Bug ID: 70561
   Summary: Crash in recog_for_combine_1
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vogt at linux dot vnet.ibm.com
CC: krebbel at gcc dot gnu.org
  Target Milestone: ---
  Host: s390x
Target: s390x

This code in recog_for_combine_1 doesn't look right:

--
  if (num_clobbers_to_add)
{
  rtx newpat = gen_rtx_PARALLEL (VOIDmode,
 rtvec_alloc (GET_CODE (pat) == PARALLEL
  ? (XVECLEN (pat, 0)
 + num_clobbers_to_add)
  : num_clobbers_to_add + 1));

  if (GET_CODE (pat) == PARALLEL)
for (i = 0; i < XVECLEN (pat, 0); i++)
  XVECEXP (newpat, 0, i) = XVECEXP (pat, 0, i);
  else
XVECEXP (newpat, 0, 0) = pat;

  add_clobbers (newpat, insn_code_number);

  for (i = XVECLEN (newpat, 0) - num_clobbers_to_add;
   i < XVECLEN (newpat, 0); i++)
{
  if (REG_P (XEXP (XVECEXP (newpat, 0, i), 0))  <=== crash
  && ! reg_dead_at_p (XEXP (XVECEXP (newpat, 0, i), 0), insn))
return -1;
  ...
--

For me, there is a crash in the marked line (for some pattern I'm working on)
with "i == 1" because "XVECEXP (newpat, 0, 1)" is "(nil)".  If
"num_clobbers_to_add" is > 0, and the original "pat" is not a parallel, only
the first element of newpat is initialised, but the remaining elements are
still accessed.  There probably should be something like this in the for loop?

  for (...)
{
  if (XVECEXP (newpat, 0, i))
/* generate clobber from scratch and store it in XVECEXP (newpat, 0, i)
*/

--

Probably triggered by this splitter:

  [(parallel
[(set (match_operand:GPR 0 "nonimmediate_operand" "")
  (and:GPR (not:GPR (match_operand:GPR 1 "nonimmediate_operand" ""))
   (match_operand:GPR 2 "nonimmediate_operand" "")))
(clobber (reg:CC CC_REGNUM))])]

==>

  [
  (parallel
   [(set (match_dup 3) (and:GPR (match_dup 1) (match_dup 2)))
   (clobber (reg:CC CC_REGNUM))])
  (parallel
   [(set (match_dup 0) (xor:GPR (match_dup 3) (match_dup 2)))
   (clobber (reg:CC CC_REGNUM))])]

[Bug target/60290] 32-bit g++.dg/cilk-plus/CK/catch_exc.cc FAILs on Solaris/x86

2016-04-06 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60290

Rainer Orth  changed:

   What|Removed |Added

 Target|i386-pc-solaris2.1[01]  |i386-pc-solaris2.1[012]
 Status|UNCONFIRMED |ASSIGNED
URL||https://gcc.gnu.org/ml/gcc-
   ||patches/2016-04/msg00292.ht
   ||ml
   Last reconfirmed||2016-04-06
   Host|i386-pc-solaris2.1[01]  |i386-pc-solaris2.1[012]
   Assignee|unassigned at gcc dot gnu.org  |ro at gcc dot gnu.org
   Target Milestone|--- |6.0
 Ever confirmed|0   |1
  Build|i386-pc-solaris2.1[01]  |i386-pc-solaris2.1[012]

--- Comment #7 from Rainer Orth  ---
Mine, patch posted.

[Bug libstdc++/70560] Review configure checks for _GLIBCXX_ATOMIC_BUILTINS and atomicity_dir

2016-04-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70560

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2016-04-06
   Assignee|unassigned at gcc dot gnu.org  |redi at gcc dot gnu.org
   Target Milestone|--- |7.0
 Ever confirmed|0   |1

[Bug libstdc++/70560] New: Review configure checks for _GLIBCXX_ATOMIC_BUILTINS and atomicity_dir

2016-04-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70560

Bug ID: 70560
   Summary: Review configure checks for _GLIBCXX_ATOMIC_BUILTINS
and atomicity_dir
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

Thomas pointed out at https://gcc.gnu.org/ml/gcc-patches/2016-03/msg01159.html
that we test for atomics that work on bool, short and int when defining
_GLIBCXX_ATOMIC_BUILTINS, and then if that's defined we use atomics on
_Atomic_word:

  # Set atomicity_dir to builtins if all but the long long test above passes.
  if test "$glibcxx_cv_atomic_bool" = yes \
 && test "$glibcxx_cv_atomic_short" = yes \
 && test "$glibcxx_cv_atomic_int" = yes; then
AC_DEFINE(_GLIBCXX_ATOMIC_BUILTINS, 1,
[Define if the compiler supports C++11 atomics.])
atomicity_dir=cpu/generic/atomicity_builtins
  fi

But _Atomic_word might not be one of those types, e.g. for sparc:

#ifdef __arch64__
  typedef long _Atomic_word;
#else
  typedef int _Atomic_word;
#endif


The choice of atomicity_dir (i.e. whether to use atomics for _Atomic_word or
not) should be based on tests that actually use that type, and that type only.

I think it should be OK to relax the checks so that atomic builtins are used
for _Atomic_word on targets where _GLIBCXX_ATOMIC_BUILTINS previously wasn't
defined. In that case new code would use the builtins via the inline functions
in , and old code would continue to use the non-inline
functions defined in libstdc++.so. Those non-inline functions would now come
from cpu/generic/atomicity_builtins/atomicity.h and so would also use atomic
builtins.

It would not be OK to stop using atomics for _Atomic_word on targets where
_GLIBCXX_ATOMIC_BUILTINS was previously defined. In that case, old code would
use the inlined builtins but new code would call non-inline functions in
cpu/generic/atomicity_mutex/atomicity.h (or a target-specific one) which might
expect to be able to use non-atomic operations protected by a critical section.
That expectation would not hold if other code is modifying the shared variable
directly, outside the critical section.


We could also review whether the __atomic_add_dispatch and
__exchange_and_add_dispatch functions in  really give much
benefit for anything except the old COW std::string. For std::shared_ptr,
std::future etc. it might make sense to simplify things and use atomics
unconditionally without checking __gthread_active_p().

[Bug libstdc++/63345] Multiple undefined behaviors (static_cast<>) in libstdc++-v3/include/bits

2016-04-06 Thread malcolm.parsons at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63345

--- Comment #11 from Malcolm Parsons  ---
(In reply to Jonathan Wakely from comment #10)
> > The attached patch fixes it for me.
> 
> That seems to be a backport of r223746 from trunk, right? I'll look into
> applying that to the gcc-5 branch.

It looks like it.  Thanks.

[Bug tree-optimization/70177] [6 Regression] ICE in extract_ops_from_tree starting with r233660

2016-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70177

--- Comment #8 from Richard Biener  ---
Author: rguenth
Date: Wed Apr  6 10:31:27 2016
New Revision: 234776

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

Backport from mainline
2016-03-11  Jakub Jelinek  

PR tree-optimization/70177
* gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
(extract_ops_from_tree): ... this.  In the 2 argument
overload remove _1 suffix.
* gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
(extract_ops_from_tree): ... this.
* gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
Adjust callers.
* tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
* tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
extract_ops_from_tree instead of 2 operand one.

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

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pr70177.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/gimple-expr.c
branches/gcc-5-branch/gcc/gimple-expr.h
branches/gcc-5-branch/gcc/gimple.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-ssa-forwprop.c
branches/gcc-5-branch/gcc/tree-ssa-loop-niter.c

[Bug c++/70513] [4.9/5/6 Regression] ICE on invalid C++ code on x86_64-linux-gnu: Segmentation fault

2016-04-06 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70513

--- Comment #5 from Marek Polacek  ---
But unfortunately that patch fixes Comment 3 but not the original testcase...

[Bug libstdc++/63345] Multiple undefined behaviors (static_cast<>) in libstdc++-v3/include/bits

2016-04-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63345

--- Comment #10 from Jonathan Wakely  ---
(In reply to Malcolm Parsons from comment #9)
> Created attachment 38201 [details]
> fix undefined behaviour in stl_tree.h
> 
> (In reply to Jonathan Wakely from comment #8)
> > I believe all the real problems are fixed now.
> 
> Clang 3.8.0 still reports undefined behaviour in stl_tree.h using GCC 5.3.0:
> 
> lib/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/bits/
> stl_tree.h:1910:28: runtime error: upcast of address 0x0225d260 with
> insufficient space for an object of type 'std::_Rb_tree_node void *const, testing::(anonymous namespace)::MockObjectState> >'
> 0x0225d260: note: pointer points here
>  00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  60 d2 25 02
> 00 00 00 00  60 d2 25 02
>   ^ 

That's expected, as some of the fixes are only on trunk, not the gcc-5 branch.

> The attached patch fixes it for me.

That seems to be a backport of r223746 from trunk, right? I'll look into
applying that to the gcc-5 branch.

[Bug libstdc++/63345] Multiple undefined behaviors (static_cast<>) in libstdc++-v3/include/bits

2016-04-06 Thread malcolm.parsons at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63345

Malcolm Parsons  changed:

   What|Removed |Added

 CC||malcolm.parsons at gmail dot 
com

--- Comment #9 from Malcolm Parsons  ---
Created attachment 38201
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38201&action=edit
fix undefined behaviour in stl_tree.h

(In reply to Jonathan Wakely from comment #8)
> I believe all the real problems are fixed now.

Clang 3.8.0 still reports undefined behaviour in stl_tree.h using GCC 5.3.0:

lib/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/bits/stl_tree.h:1910:28:
runtime error: upcast of address 0x0225d260 with insufficient space for an
object of type 'std::_Rb_tree_node >'
0x0225d260: note: pointer points here
 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  60 d2 25 02 00
00 00 00  60 d2 25 02
  ^ 

The attached patch fixes it for me.

[Bug fortran/65438] Unnecessary ptr check

2016-04-06 Thread tschwinge at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65438

Thomas Schwinge  changed:

   What|Removed |Added

   Priority|P3  |P5
 Status|RESOLVED|ASSIGNED
 Resolution|INVALID |---
   Assignee|unassigned at gcc dot gnu.org  |cesar at gcc dot gnu.org
   Severity|normal  |minor

--- Comment #5 from Thomas Schwinge  ---
(In reply to Dominique d'Humieres from comment #1)
> > The function check_array_not_assumed (openmp.c) performs an unnecessary
> > check on pointers.
> 
> Does this refer to sym->attr.pointer in the lines
> 
>   if (sym->as && sym->as->type == AS_DEFERRED && sym->attr.pointer
>   && !sym->attr.contiguous)
> 
> ?

I have now looked this up in our old internal development tree, and found the
patch that I just attached, which goes with a note by Jim stating that it
"removes a needless pointer check.  Cesar consulted on this patch".  Cesar,
please resolve this in GCC trunk (low priority).

[Bug fortran/65438] Unnecessary ptr check

2016-04-06 Thread tschwinge at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65438

--- Comment #4 from Thomas Schwinge  ---
Created attachment 38200
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38200&action=edit
patch

[Bug fortran/59093] Segfault in gfc_trans_pointer_assignment

2016-04-06 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59093

Paul Thomas  changed:

   What|Removed |Added

 CC||damian at sourceryinstitute 
dot or
   ||g, pault at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |pault at gcc dot gnu.org

--- Comment #10 from Paul Thomas  ---
It is the same as PR34640, which was already assigned to me, PR57116 and is
related to PR40737.

Paul

[Bug fortran/55427] [OOP] ICE with class-array-pointer result

2016-04-06 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55427

Paul Thomas  changed:

   What|Removed |Added

 CC||dominiq at lps dot ens.fr

--- Comment #3 from Paul Thomas  ---
Dear Valery,

This is fixed on trunk and GNU Fortran (GCC) 5.1.1 20150618 (Red Hat 5.1.1-4).
Your example even runs correctly!

I have added Dominique to the CC list in the hope that he can pin down better
when it was fixed. He seems to maintain the world's largest collection of
archaic gcc's :-)

This can be closed once we pin down approximately when it was fixed.

Cheers

Paul

[Bug target/70557] uint64_t zeroing on 32-bit hardware

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70557

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
PR22141 ?  We really should tackle that as late GIMPLE pass for GCC 7.

[Bug target/62254] [4.9/5/6 Regression] gcc-4.9 ICEs on linux kernel zlib for armv3

2016-04-06 Thread ramana at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62254

--- Comment #21 from Ramana Radhakrishnan  ---

(In reply to Nick Clifton from comment #19)
> (In reply to Julien Margetts from comment #17)
> > The following test case still fails with the patch applied (originally bug
> > 70362)
> > 
> > arm-none-eabi-gcc -march=armv3m -c -o c_compat_x_tst.o
> > gcc/testsuite/gcc.dg/compat/scalar-by-value-4_x.c
> 
> 
> I cannot reproduce this failure.  Ie when I compile this test case
> everything works, at -O0 all the way up to -O3.
> 
> This is with today's mainline sources, which has *both* of the patches from
> this PR applied.  These sources no longer contain this assertion:
> 
>   gcc_assert (REG_P (operands[0]));
> 
> although they do contain:
> 
>   gcc_assert (REG_P (outval) || SUBREG_P (outval));
> 
> 
> If the problem really does exist, could someone tell me what outval looks
> like when the assertion is triggered ?


I can't seem to make this fire on trunk anymore and it does look like I was
using a stale build. Sorry about the noise on trunk.

Ramana
> 
> Cheers
>   Nick

[Bug fortran/43207] [OOP] invalid (pointer) assignment to and from abstract non-polymorphic expressions

2016-04-06 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43207

Paul Thomas  changed:

   What|Removed |Added

 CC||pault at gcc dot gnu.org
   Assignee|janus at gcc dot gnu.org   |unassigned at gcc dot 
gnu.org
Summary|[OOP] invalid pointer   |[OOP] invalid (pointer)
   |assignment => type%parent   |assignment to and from
   ||abstract non-polymorphic
   ||expressions

--- Comment #12 from Paul Thomas  ---
Have changed the title to reflect the fact that the original ICE was fixed.

Have also unassigned Janus, since he has been inactive for quite a long time.

Paul

[Bug middle-end/70550] -Wuninitialized false positives in OpenMP code

2016-04-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70550

Jakub Jelinek  changed:

   What|Removed |Added

  Attachment #38194|0   |1
is obsolete||

--- Comment #2 from Jakub Jelinek  ---
Created attachment 38199
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38199&action=edit
gcc6-pr70550.patch

Updated patch to also handle implicit firstprivate on task/taskloop.

[Bug target/70557] uint64_t zeroing on 32-bit hardware

2016-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70557

Richard Biener  changed:

   What|Removed |Added

   Keywords||missed-optimization
  Component|other   |target

--- Comment #2 from Richard Biener  ---
This is a known bug (partly) as GCC currently has no way to combine small
stores
into a larger one (apart from BB vectorization if the result fits a vector
store).

Too lazy to find the duplicate but you can search for it yourself.

Eventually there's a m68k target piece left, so keeping open as target bug.

[Bug c++/70558] POD datatype array crash in initialization when using optimization

2016-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70558

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #1 from Richard Biener  ---
  inline Double &operator =(const double &other) { x = other; }

you fail to return *this:

> g++-5 test.cpp -O -std=c++11 -Wall
In file included from test.cpp:3:0:
Double.h: In member function ‘Double& Double::operator=(const double&)’:
Double.h:24:63: warning: no return statement in function returning non-void
[-Wreturn-type]
   inline Double &operator =(const double &other) { x = other; }

[Bug target/67478] gcc-5.1.0/gcc-5.2.0 undefined symbol std::__once_callable in AIX 6.1

2016-04-06 Thread qshanz at cn dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67478

--- Comment #9 from Qingshan Zhang  ---
Or do we have any work round for this issue ? Thank you.

[Bug tree-optimization/69760] [4.9/5 Regression] Wrong 64-bit memory address caused by an unneeded overflowing 32-bit integer multiplication on x86_64 under -O2 and -O3 code optimization

2016-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69760

--- Comment #15 from Richard Biener  ---
Author: rguenth
Date: Wed Apr  6 08:09:40 2016
New Revision: 234775

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

Backport from mainline
2016-02-24  Richard Biener  
Jakub Jelinek  

PR middle-end/69760
* tree-scalar-evolution.c (interpret_rhs_expr): Re-write
conditionally executed ops to well-defined overflow behavior.

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

2016-03-01  Richard Biener  

PR tree-optimization/69983
* tree-chrec.c (eq_evolutions_p): Handle conversions, compare
types and fall back to operand_equal_p.

* gcc.dg/graphite/isl-codegen-loop-dumping.c: Adjust.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr69760.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/testsuite/ChangeLog
   
branches/gcc-5-branch/gcc/testsuite/gcc.dg/graphite/isl-codegen-loop-dumping.c
branches/gcc-5-branch/gcc/tree-chrec.c
branches/gcc-5-branch/gcc/tree-scalar-evolution.c

[Bug target/67478] gcc-5.1.0/gcc-5.2.0 undefined symbol std::__once_callable in AIX 6.1

2016-04-06 Thread qshanz at cn dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67478

Qingshan Zhang  changed:

   What|Removed |Added

 CC||qshanz at cn dot ibm.com

--- Comment #8 from Qingshan Zhang  ---
Hi, would you please share me how to fix this issue ?

[Bug middle-end/69983] [6 Regression] FAIL: gcc.dg/graphite/scop-sor.c scan-tree-dump-times graphite "number of SCoPs: 1" 1

2016-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69983

--- Comment #9 from Richard Biener  ---
Author: rguenth
Date: Wed Apr  6 08:09:40 2016
New Revision: 234775

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

Backport from mainline
2016-02-24  Richard Biener  
Jakub Jelinek  

PR middle-end/69760
* tree-scalar-evolution.c (interpret_rhs_expr): Re-write
conditionally executed ops to well-defined overflow behavior.

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

2016-03-01  Richard Biener  

PR tree-optimization/69983
* tree-chrec.c (eq_evolutions_p): Handle conversions, compare
types and fall back to operand_equal_p.

* gcc.dg/graphite/isl-codegen-loop-dumping.c: Adjust.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr69760.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/testsuite/ChangeLog
   
branches/gcc-5-branch/gcc/testsuite/gcc.dg/graphite/isl-codegen-loop-dumping.c
branches/gcc-5-branch/gcc/tree-chrec.c
branches/gcc-5-branch/gcc/tree-scalar-evolution.c

[Bug tree-optimization/68963] [4.9 Regression] O3 vs. O2 discards part of loop and terminates early

2016-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68963

--- Comment #9 from Richard Biener  ---
Author: rguenth
Date: Wed Apr  6 07:57:47 2016
New Revision: 234774

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

Backport from mainline
2016-02-24  Richard Biener  

PR middle-end/68963
* tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
bogus check.
(record_nonwrapping_iv): Do not fall back to the low/high bound
for non-constant IV bases if the stmt is not always executed.

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

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr68963.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-ssa-loop-niter.c

[Bug tree-optimization/70115] [5 Regression] gcc ICE at -O2 (seg fault) and above on valid code on x86_64-linux-gnu

2016-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70115

Richard Biener  changed:

   What|Removed |Added

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

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

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

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

--- Comment #5 from Richard Biener  ---
Author: rguenth
Date: Wed Apr  6 07:51:19 2016
New Revision: 234773

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

Backport from mainline
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.

2016-03-07  Richard Biener  

PR tree-optimization/70115
* tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
(propagate_constants_for_unrolling): Use replace_uses_by.

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

2016-03-29  Richard Biener  

PR middle-end/70424
* ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
use alignment returned by get_pointer_alignment_1 if it is
bigger than BITS_PER_UNIT.
* builtins.c (get_pointer_alignment_1): Do not return true
for alignment extracted from SSA info.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pr70022.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr70115.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/builtins.c
branches/gcc-5-branch/gcc/ipa-prop.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-ssa-loop-ivcanon.c

[Bug middle-end/70424] [4.9/5 Regression] Pointer derived from integer gets reduced alignment

2016-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70424

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Wed Apr  6 07:51:19 2016
New Revision: 234773

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

Backport from mainline
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.

2016-03-07  Richard Biener  

PR tree-optimization/70115
* tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
(propagate_constants_for_unrolling): Use replace_uses_by.

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

2016-03-29  Richard Biener  

PR middle-end/70424
* ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
use alignment returned by get_pointer_alignment_1 if it is
bigger than BITS_PER_UNIT.
* builtins.c (get_pointer_alignment_1): Do not return true
for alignment extracted from SSA info.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pr70022.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr70115.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/builtins.c
branches/gcc-5-branch/gcc/ipa-prop.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-ssa-loop-ivcanon.c

[Bug tree-optimization/70115] [5 Regression] gcc ICE at -O2 (seg fault) and above on valid code on x86_64-linux-gnu

2016-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70115

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Wed Apr  6 07:51:19 2016
New Revision: 234773

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

Backport from mainline
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.

2016-03-07  Richard Biener  

PR tree-optimization/70115
* tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
(propagate_constants_for_unrolling): Use replace_uses_by.

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

2016-03-29  Richard Biener  

PR middle-end/70424
* ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
use alignment returned by get_pointer_alignment_1 if it is
bigger than BITS_PER_UNIT.
* builtins.c (get_pointer_alignment_1): Do not return true
for alignment extracted from SSA info.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pr70022.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr70115.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/builtins.c
branches/gcc-5-branch/gcc/ipa-prop.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-ssa-loop-ivcanon.c

[Bug c++/70430] Incorrect result for logical "and" operation with mixed vector and scalar

2016-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70430

Richard Biener  changed:

   What|Removed |Added

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

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

  1   2   >