[Bug libgcc/65902] GCC-5.1 fails to bootstrap for eCos/arm-eabi

2015-04-28 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65902

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
But that is not in a header other packages use, it is in the source, and we
aren't including stdbool.h.
So this really looks like an eCos bug.


[Bug libstdc++/65631] seed_seq should not be copyable

2015-04-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65631

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |6.0

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
done


[Bug libstdc++/65631] seed_seq should not be copyable

2015-04-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65631

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Tue Apr 28 12:35:30 2015
New Revision: 222524

URL: https://gcc.gnu.org/viewcvs?rev=222524root=gccview=rev
Log:
PR libstdc++/65631
* include/bits/random.h (seed_seq) Define copy constructor and copy
assignment as deleted.
* testsuite/26_numerics/random/seed_seq/cons/65631.cc: New.

Added:
trunk/libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/65631.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/random.h


[Bug tree-optimization/65917] New: [6.0 regression] FAIL: gcc.dg/tree-ssa/20030922-2.c scan-tree-dump-times dom1 if 2

2015-04-28 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65917

Bug ID: 65917
   Summary: [6.0 regression] FAIL: gcc.dg/tree-ssa/20030922-2.c
scan-tree-dump-times dom1 if  2
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: sch...@linux-m68k.org
CC: rguenth at gcc dot gnu.org
  Target Milestone: ---
Target: m68k-*-*

$ gcc/xgcc -B gcc/ -O1 -fdump-tree-dom1 -S
../gcc/testsuite/gcc.dg/tree-ssa/20030922-2.c  grep -c if  20030922-2.c.*
3

83617aa2bed0a6ac21010ba3b960d087bcb66f9b is the first bad commit
commit 83617aa2bed0a6ac21010ba3b960d087bcb66f9b
Author: rguenth rguenth@138bc75d-0d04-0410-961f-82ee72b054a4
Date:   Mon Apr 27 12:46:58 2015 +

2015-04-27  Richard Biener  rguent...@suse.de

* tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
(record_equivalences_from_stmt): Valueize rhs.
(record_equality): Canonicalize x and y order via
tree_swap_operands_p.  Do not swap operands for same loop depth.

* gcc.target/i386/pr65217.c: XFAIL.


[Bug libgcc/65902] GCC-5.1 fails to bootstrap for eCos/arm-eabi

2015-04-28 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65902

--- Comment #3 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
(In reply to Richard Earnshaw from comment #2)
 The standard headers should only be defining bool if stdbool.h has been
 included.  So this looks more like a build environment error than a bug in
 GCC.

yes. that is not too smart to define bool in the wrong header...

but somehow we are also defining that in the wrong place?


[Bug c++/65734] Yet another case of lost alignment by stor_layout

2015-04-28 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65734

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Tue Apr 28 14:43:48 2015
New Revision: 222529

URL: https://gcc.gnu.org/viewcvs?rev=222529root=gccview=rev
Log:
PR c++/65734
gcc/
* stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
(finalize_type_size): Respect TYPE_USER_ALIGN.
(layout_type) [ARRAY_TYPE]: Likewise.
gcc/cp/
* class.c (fixup_attribute_variants): Respect TYPE_USER_ALIGN.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/alignas1.C
trunk/gcc/testsuite/g++.dg/cpp0x/alignas2.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/stor-layout.c


[Bug c++/50800] Internal compiler error in finish_member_declarations, possibly related to may_alias attribute

2015-04-28 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50800

--- Comment #16 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Tue Apr 28 14:43:54 2015
New Revision: 222530

URL: https://gcc.gnu.org/viewcvs?rev=222530root=gccview=rev
Log:
PR c++/50800
* tree.c (strip_typedefs): Add remove_attributes parm.
(strip_typedefs_expr): Likewise.
(apply_identity_attributes): New subroutine of strip_typedefs.
* pt.c (canonicalize_type_argument): Let strip_typedefs handle attrs.
(convert_nontype_argument, unify): Likewise.
* cp-tree.h: Adjust.

Added:
trunk/gcc/testsuite/g++.dg/ext/attrib50.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/pt.c
trunk/gcc/cp/tree.c
trunk/gcc/testsuite/g++.dg/abi/mangle40.C
trunk/gcc/testsuite/g++.dg/ext/alias-mangle.C


[Bug c++/65656] __builtin_constant_p should always be constexpr

2015-04-28 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65656

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Tue Apr 28 14:43:59 2015
New Revision: 222531

URL: https://gcc.gnu.org/viewcvs?rev=222531root=gccview=rev
Log:
PR c++/65656
* constexpr.c (cxx_eval_builtin_function_call): Fix
__builtin_constant_p.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-builtin3.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/constexpr.c


[Bug tree-optimization/65918] Optimized code ( -O0) on 2-dim array iteration incorrect

2015-04-28 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65918

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||trippels at gcc dot gnu.org
 Resolution|--- |INVALID

--- Comment #2 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
while ((value  limits[type][retval])  (retval  3))

well, the index gets out of bound. Check (retval  3) first.


[Bug target/65914] [6 Regression] error: unrecognizable insn

2015-04-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |6.0


[Bug target/65837] [arm-linux-gnueabihf] lto1 target specific builtin not available

2015-04-28 Thread prathamesh3492 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65837

--- Comment #15 from prathamesh3492 at gcc dot gnu.org ---
Hi,
I am not entirely sure, the issue seems to be in lto-wrapper.
In lto-wrapper.c:run_gcc():
fdecoded_options, which are compiler options contains -mfpu=neon
decoded_options, which are linker options contains -mfpu=vfpv3-d16.
decoded_options are populated by 
lto-wrapper.c:get_options_from_collect_gcc_options() from environment
variable COLLECT_GCC_OPTIONS.

fdecoded_options are appended after decoded_options in run_gcc():

  append_linker_options (argv_obstack, decoded_options,
decoded_options_count);
  append_compiler_options (argv_obstack, fdecoded_options,
   fdecoded_options_count);

which is why -mfpu=vfpv3-d16 overrides -mfpu=neon.

Reversing the order of above function calls works fine for me
for the above test-case.

However I am not sure if this is the right approach,
It now passes -mfpu=vfpv3-d16 and then it's overriden by -mfpu=neon
since we reversed the order.
Ideally we don't want -mfpu=vfpv3-d16 to appear ?

I am not understanding why vfpv3-d16 appears in collect_gcc_options in
run_gcc().
While writing COLLECT_GCC_OPTIONS in
lto-opts.c:append_to_collect_gcc_options(), -mfpu=vfpv3-d16 is not present,
Only -mfpu=neon is present, which is correct since it was passed as a command
line option.

I am not sure what modifies COLLECT_GCC_OPTIONS before it is read by run_gcc()
in lto-wrapper.

Thank you,
Prathamesh


[Bug tree-optimization/65918] Optimized code ( -O0) on 2-dim array iteration incorrect

2015-04-28 Thread habanero_pizza at yahoo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65918

J. W. Mitchell habanero_pizza at yahoo dot com changed:

   What|Removed |Added

 CC||habanero_pizza at yahoo dot com

--- Comment #1 from J. W. Mitchell habanero_pizza at yahoo dot com ---
Created attachment 35414
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35414action=edit
Preprocessed test case.


[Bug target/65914] [6 Regression] error: unrecognizable insn

2015-04-28 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914

--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Created attachment 35415
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35415action=edit
Somewhat reduced testcase


[Bug tree-optimization/65917] [6.0 regression] FAIL: gcc.dg/tree-ssa/20030922-2.c scan-tree-dump-times dom1 if 2

2015-04-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65917

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2015-04-28
 CC||law at gcc dot gnu.org
   Target Milestone|--- |6.0
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed by Jeffs later patch?


[Bug tree-optimization/65918] New: Optimized code ( -O0) on 2-dim array iteration incorrect

2015-04-28 Thread habanero_pizza at yahoo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65918

Bug ID: 65918
   Summary: Optimized code ( -O0) on 2-dim array iteration
incorrect
   Product: gcc
   Version: 5.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: habanero_pizza at yahoo dot com
  Target Milestone: ---
  Host: i686-pc-linux-gnu
Target: i686-pc-linux-gnu
 Build: i686-pc-linux-gnu

Created attachment 35413
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35413action=edit
Test case source:  execution fails if OKAY is not defined...

When the following function is compiled with gcc 4.8.3, 4.9.2, or 5.1.0, it
only executes properly when no optimization is specified (-O0):

int f(int value, int type)
{
static const int limits[2][3] = {
{ 400, 480, 512 },
{ 460, 492, 500 }
};

int retval = 0;

while ((value  limits[type][retval])  (retval  3)) {
retval++;
}

return retval;
}

The problem is in the case where retval should be 3; for example, if value is
550 and type is 0, the retval should be 3, but the function will return 2.  For
cases where the function is supposed to return 0, 1, or 2, it does work
correctly.

However, if gcc 4.6.4 or gcc 4.7.2 is used, it works correctly with and without
optimization.

If the loop is changed to use an array of a single dimension, the problem is
also eliminated (4.8, 4.9, 5.1):

const int *limit = limits[type];

while ((value  limit[retval])  (retval  3)) {
retval++;
}

I have also confirmed that the problem appears for x86_64 and ARM
architectures.

See attached file (test-opt-2-dim-array-iter.c) for further information.

Compilation details:

Using built-in specs.
COLLECT_GCC=i386-eabi-gcc
COLLECT_LTO_WRAPPER=/usr/local/i386-eabi-5.1.0/libexec/gcc/i686-pc-linux-gnu/5.1.0/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../../gcc-5.1.0/configure --prefix=/usr/local/i386-eabi-5.1.0
--program-prefix=i386-eabi- --enable-languages=c,c++
--with-gmp=/usr/local/i386-eabi-5.1.0 --with-mpfr=/usr/local/i386-eabi-5.1.0
--with-mpc=/usr/local/i386-eabi-5.1.0 --with-isl=/usr/local/i386-eabi-5.1.0
--with-zlib=/usr/local --enable-lto --enable-gold
Thread model: posix
gcc version 5.1.0 (GCC) 
COLLECT_GCC_OPTIONS='-O1' '-v' '-save-temps' '-o' 'test-opt-2-dim-array-iter'
'-mtune=generic' '-march=pentiumpro'
 /usr/local/i386-eabi-5.1.0/libexec/gcc/i686-pc-linux-gnu/5.1.0/cc1 -E -quiet
-v test-opt-2-dim-array-iter.c -mtune=generic -march=pentiumpro -O1
-fpch-preprocess -o test-opt-2-dim-array-iter.i
ignoring nonexistent directory
/usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/../../../../i686-pc-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/include
 /usr/local/include
 /usr/local/i386-eabi-5.1.0/include
 /usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-O1' '-v' '-save-temps' '-o' 'test-opt-2-dim-array-iter'
'-mtune=generic' '-march=pentiumpro'
 /usr/local/i386-eabi-5.1.0/libexec/gcc/i686-pc-linux-gnu/5.1.0/cc1
-fpreprocessed test-opt-2-dim-array-iter.i -quiet -dumpbase
test-opt-2-dim-array-iter.c -mtune=generic -march=pentiumpro -auxbase
test-opt-2-dim-array-iter -O1 -version -o test-opt-2-dim-array-iter.s
GNU C11 (GCC) version 5.1.0 (i686-pc-linux-gnu)
compiled by GNU C version 5.1.0, GMP version 5.1.3, MPFR version 3.1.2,
MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C11 (GCC) version 5.1.0 (i686-pc-linux-gnu)
compiled by GNU C version 5.1.0, GMP version 5.1.3, MPFR version 3.1.2,
MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: d06407f4e6fff3c174315d9bcdf98d85
COLLECT_GCC_OPTIONS='-O1' '-v' '-save-temps' '-o' 'test-opt-2-dim-array-iter'
'-mtune=generic' '-march=pentiumpro'

/usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/../../../../i686-pc-linux-gnu/bin/as
-v --32 -o test-opt-2-dim-array-iter.o test-opt-2-dim-array-iter.s
GNU assembler version 2.25 (i686-pc-linux-gnu) using BFD version (GNU Binutils)
2.25
COMPILER_PATH=/usr/local/i386-eabi-5.1.0/libexec/gcc/i686-pc-linux-gnu/5.1.0/:/usr/local/i386-eabi-5.1.0/libexec/gcc/i686-pc-linux-gnu/5.1.0/:/usr/local/i386-eabi-5.1.0/libexec/gcc/i686-pc-linux-gnu/:/usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/:/usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/:/usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/../../../../i686-pc-linux-gnu/bin/
LIBRARY_PATH=/usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/:/usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/../../../:/lib/:/usr/lib/

[Bug tree-optimization/65217] __builtin_unreachable in if statement causes bad assembly generation

2015-04-28 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65217

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 CC||law at redhat dot com
 Resolution|--- |FIXED

--- Comment #5 from Jeffrey A. Law law at redhat dot com ---
Resolved again :-)


[Bug other/65911] [6 Regression] r222508 breaks clang-tblgen

2015-04-28 Thread tbsaunde at tbsaunde dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65911

--- Comment #6 from tbsaunde at tbsaunde dot org ---
On Tue, Apr 28, 2015 at 03:59:05AM +, trippels at gcc dot gnu.org wrote:
 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65911
 
 Markus Trippelsdorf trippels at gcc dot gnu.org changed:
 
What|Removed |Added
 
  Status|UNCONFIRMED |NEW
Last reconfirmed||2015-04-28
  Ever confirmed|0   |1
 
 --- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
 It's the ternary operator that causes the issue. 
 The following patch works fine:

huh, thanks for figuring it out!

Trev


[Bug target/65837] [arm-linux-gnueabihf] lto1 target specific builtin not available

2015-04-28 Thread prathamesh3492 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65837

prathamesh3492 at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mkuvyrkov at gcc dot gnu.org

--- Comment #14 from prathamesh3492 at gcc dot gnu.org ---
Hi,
Following Maxim's suggestion I tried to build with x86_64-gcc passing -mtune=k8
at compile-time but not at link time and the same thing happens.

gcc -flto -mtune=k8 foo.c -v:

Without passing -mtune=k8 at link-time, -mtune=generic overrides -mtune=k8
gcc -flto foo.o -v:

COLLECT_GCC_OPTIONS='-c' '-fmath-errno' '-fsigned-zeros' '-ftrapping-math'
'-fno-trapv' '-fno-strict-overflow' '-fno-openmp' '-fno-openacc' '-mtune=k8'
'-march=x86-64' '-v' '-mtune=generic' '-march=x86-64'
'-fltrans-output-list=/tmp/cc415lAT.ltrans.out' '-fwpa'
'-fresolution=/tmp/ccuL4EuS.res'

/home/prathamesh.kulkarni/fsf-toolchain/libexec/gcc/x86_64-unknown-linux-gnu/6.0.0/lto1
-quiet -dumpbase foo.o -mtune=k8 -march=x86-64 -mtune=generic -march=x86-64
-auxbase foo -version -fmath-errno -fsigned-zeros -ftrapping-math -fno-trapv
-fno-strict-overflow -fno-openmp -fno-openacc
-fltrans-output-list=/tmp/cc415lAT.ltrans.out -fwpa
-fresolution=/tmp/ccuL4EuS.res @/tmp/ccXLZx2S

Passing -mtune=k8 at link-time, passes only -mtune=k8 to lto1 
gcc -flto -mtune=k8 foo.o -v:

COLLECT_GCC_OPTIONS='-c' '-fmath-errno' '-fsigned-zeros' '-ftrapping-math'
'-fno-trapv' '-fno-strict-overflow' '-fno-openmp' '-fno-openacc' '-mtune=k8'
'-march=x86-64' '-mtune=k8' '-v' '-march=x86-64'
'-fltrans-output-list=/tmp/ccK0THy1.ltrans.out' '-fwpa'
'-fresolution=/tmp/ccqMHR7Y.res'

/home/prathamesh.kulkarni/fsf-toolchain/libexec/gcc/x86_64-unknown-linux-gnu/6.0.0/lto1
-quiet -dumpbase foo.o -mtune=k8 -march=x86-64 -mtune=k8 -march=x86-64 -auxbase
foo -version -fmath-errno -fsigned-zeros -ftrapping-math -fno-trapv
-fno-strict-overflow -fno-openmp -fno-openacc
-fltrans-output-list=/tmp/ccK0THy1.ltrans.out -fwpa
-fresolution=/tmp/ccqMHR7Y.res @/tmp/ccxcdoB1

So this looks like a target independent bug ? I am continuing to investigate
it.

Thank you,
Prathamesh


[Bug spam/9360] 20010525035601.4254.qmail,this would be for youwe could enter that

2015-04-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=9360

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

  Component|pending |spam
 Resolution|FIXED   |INVALID


[Bug spam/9353] 20010525035601.4254.qmail,this would be for youwe could enter that

2015-04-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=9353

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

  Component|pending |spam
 Resolution|FIXED   |INVALID


[Bug spam/10531] denoxe barth

2015-04-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=10531

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

  Component|pending |spam
 Resolution|FIXED   |INVALID


[Bug fortran/65903] [5/6 Regression] Line continuation followed by comment character in string fails to compile

2015-04-28 Thread jvdelisle at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65903

Jerry DeLisle jvdelisle at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-04-29
Summary|Line continuation followed  |[5/6 Regression] Line
   |by comment character in |continuation followed by
   |string fails to compile |comment character in string
   ||fails to compile
 Ever confirmed|0   |1

--- Comment #2 from Jerry DeLisle jvdelisle at gcc dot gnu.org ---
This is a regression.


[Bug tree-optimization/51513] Only partially optimizes away __builtin_unreachable switch default case

2015-04-28 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51513

--- Comment #7 from Peter Bergner bergner at gcc dot gnu.org ---
(In reply to Emil L from comment #3)
 This optimization would be very interesting for interpreter implementators
 that use a switch statement to dispatch the next instruction, when they can
 guarantee that the default branch is never taken.

I have actually hit the same issue with some code from PHP, so you're not too
far off on your comment.  A reduced test case from PHP looks like:

void
foo (unsigned char *ptr, unsigned int cond)
{
  switch (cond)
{
case 0:
  return;
case 1:
case 2:
case 3:
case 4:
case 6:
  *ptr += 1;
  return;
case 5:
  *ptr += 2;
  return;
default:
  __builtin_unreachable ();
  break;
}
}

In this case, the undeleted branch had a wild label that pointed to nowhere.


[Bug target/65837] [arm-linux-gnueabihf] lto1 target specific builtin not available

2015-04-28 Thread prathamesh3492 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65837

--- Comment #18 from prathamesh3492 at gcc dot gnu.org ---
Created attachment 35420
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35420action=edit
patch to override default options by options in object file

Hi,

The following untested patch gives preference to option value in object file.
In run_gcc(),
options from COLLECT_GCC_OPTIONS which are taken from command line are stored
in decoded_options.
options from object file are stored in fdecoded_options.
so override the option in decoded_options if it is present in fdecoded_options.

With the patch this works:
arm-linux-gnueabihf-gcc test.c -mfpu=neon -flto -c
arm-linux-gnueabihf-gcc test.o -flto 
only passes -mfpu=neon to lto1

However the patch doesn't work when same option is passed different values at
compile and link-time:
arm-linux-gnuebihf-gcc test.c -mfpu=neon -flto -c
arm-linux-gnueabihf-gcc test.o -mfpu=vfpv3-d16 -flto

In this case, -mfpu=neon is still passed to lto1, since the patch prefers
option value from object file.
Without the patch, the option from the command line was given preference.

for both the following cases: 
arm-linux-gnueabihf-gcc test.o -flto
arm-linux-gnueabihf-gcc test.o -flto -mfpu=vfpv3-d16

COLLECT_GCC_OPTIONS contains -mfpu=vfpv3-d16, however in the first case it
isn't explictly passed by user, so passing -mfpu=neon
would be correct. In the second case, since -mfpu=vfpv3-d16 is passed
intentionally by user, should it be considered
as an error - conflicting options ?

Unfortunately, it looks like there is no way to distinguish between options
defined by default and explicitly passed options from COLLECT_GCC_OPTIONS and
that's the only way command line options are passed to lto-wrapper from the
driver. One way would be to modify COLLECT_GCC_OPTIONS in the driver to
indicate which options were explicitly passed from command line.
For instance, additionally COLLECT_GCC_OPTIONS would contain 
-mfpu=vfpv3-d16-explicit to indiciate that -mfpu=vfpv3-d16 was
passed from command line and not set by default. In lto-wrapper the options
could be parsed to check if they have explicit suffix and thus distinguish
between explicit and defualt defined options.
Does that sound reasonable ? I would be grateful for suggestions.

Thank you,
Prathamesh


[Bug fortran/65548] [5/6 Regression] gfc_conv_procedure_call

2015-04-28 Thread juergen.reuter at desy dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65548

--- Comment #30 from Jürgen Reuter juergen.reuter at desy dot de ---
I can apply this patch on r222550 of 
https://gcc.gnu.org/svn/gcc/branches/gcc-5-branch/
correct?

[Bug c++/65896] [5/6 Regression] Erroneous uninitialized variable access error in constexpr function with temporary variables

2015-04-28 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65896

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Apr 29 00:57:50 2015
New Revision: 222557

URL: https://gcc.gnu.org/viewcvs?rev=222557root=gccview=rev
Log:
PR c++/65896
* constexpr.c (cxx_eval_store_expression): Don't try to actually
store an empty class.

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/cpp0x/constexpr-empty9.C
Modified:
branches/gcc-5-branch/gcc/cp/ChangeLog
branches/gcc-5-branch/gcc/cp/constexpr.c


[Bug c++/65896] [5/6 Regression] Erroneous uninitialized variable access error in constexpr function with temporary variables

2015-04-28 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65896

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||jason at gcc dot gnu.org
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org
   Target Milestone|--- |5.2

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
Fixed for 5.2, 6


[Bug middle-end/65922] New: Switch statement with __builtin_unreachable creates a wild branch

2015-04-28 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65922

Bug ID: 65922
   Summary: Switch statement with __builtin_unreachable creates a
wild branch
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bergner at gcc dot gnu.org
  Target Milestone: ---

The following test case compiled with -O2 creates a wild branch when it
generates the branch to the switch's default leg.  On both POWER and x86_64
(maybe others), it generates a branch with a label just past the last
instruction in the function.

POWER:

  .L.foo:
cmplwi 7,4,6
bgt 7,.L2
  [snip]
blr
.p2align 4,,15
  .L2:
.long 0

X86_64:

  foo:
  .LFB0:
.cfi_startproc
cmpl$6, %esi
ja  .L2
  [snip]
ret
.p2align 4,,10
.p2align 3
  .L2:
.cfi_endproc
  .LFE0:
.size   foo, .-foo

My guess is that since we've stated that the default leg is unreachable, we
should probably just delete the branch altogether, rather than allowing it to
branch into nowhere.  I'll note that I see the same behavior from GCC 4.8 thru
trunk.  The code from GCC 4.7 and earlier looks ok.


[Bug c++/65876] [5/6 Regression] [C++11] ICE in cxx_eval_call_expression, at cp/constexpr.c:1358

2015-04-28 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65876

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||jason at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org


[Bug middle-end/65922] Switch statement with __builtin_unreachable creates a wild branch

2015-04-28 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65922

Peter Bergner bergner at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.7.0
  Known to fail||4.8.0, 4.9.0, 5.1.0, 6.0

--- Comment #1 from Peter Bergner bergner at gcc dot gnu.org ---
The last tree dump looks ok to me:

foo (unsigned char * ptr, unsigned int cond)
{
  unsigned char _5;
  unsigned char _6;
  unsigned char _8;
  unsigned char _9;

  bb 2:
  switch (cond_2(D)) default: L7, case 0: L9, case 1 ... 4: L1, case 5:
L6, case 6: L1

L1:
  _5 = *ptr_4(D);
  _6 = _5 + 1;
  *ptr_4(D) = _6;
  goto bb 6 (L9);

L6:
  _8 = *ptr_4(D);
  _9 = _8 + 2;
  *ptr_4(D) = _9;
  goto bb 6 (L9);

L7:
  __builtin_unreachable ();

L9:
  return;

}

But the first rtl code after expand looks suspect to me.


[Bug target/65915] New: [6 Regression] FAIL: gcc.target/i386/avx512f-vrndscalepd-2.c (internal compiler error)

2015-04-28 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65915

Bug ID: 65915
   Summary: [6 Regression] FAIL:
gcc.target/i386/avx512f-vrndscalepd-2.c (internal
compiler error)
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hjl.tools at gmail dot com
CC: tocarip.intel at gmail dot com
  Target Milestone: ---

On x86-64, r222470 caused:

[hjl@gnu-ivb-1 gcc]$ ./xgcc -B./
/export/gnu/import/git/gcc-regression/gcc/gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-2.c
 -fpic -mcmodel=medium   -fno-diagnostics-show-caret -fdiagnostics-color=never 
 -O2 -mavx512f  -S
/export/gnu/import/git/gcc-regression/gcc/gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-2.c:
In function \u2018test_512\u2019:
/export/gnu/import/git/gcc-regression/gcc/gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-2.c:101:1:
error: insn does not satisfy its constraints:
(insn 367 366 319 9 (set (reg:V2DF 53 xmm16 [ D.29386 ])
(vec_merge:V2DF (vec_duplicate:V2DF (float:DF (reg:SI 2 cx [orig:96
D.29385 ] [96])))
(reg:V2DF 53 xmm16 [ D.29386 ])
(const_int 1 [0x1]))) 2191 {sse2_cvtsi2sd}
 (expr_list:REG_DEAD (reg:SI 2 cx [orig:96 D.29385 ] [96])
(nil)))
/export/gnu/import/git/gcc-regression/gcc/gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-2.c:101:1:
internal compiler error: in extract_constrain_insn, at recog.c:2244
0xcf4a34 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
../../../../gcc/gcc/rtl-error.c:110
0xcf4a94 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
../../../../gcc/gcc/rtl-error.c:121
0xca7059 extract_constrain_insn(rtx_insn*)
../../../../gcc/gcc/recog.c:2244
0xcb5847 copyprop_hardreg_forward_1
../../../../gcc/gcc/regcprop.c:793
0xcb704b execute
../../../../gcc/gcc/regcprop.c:1289
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.
[hjl@gnu-ivb-1 gcc]$


[Bug target/65914] New: [6 Regression] error: unrecognizable insn

2015-04-28 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914

Bug ID: 65914
   Summary: [6 Regression] error: unrecognizable insn
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: trippels at gcc dot gnu.org
  Target Milestone: ---
  Host: powerpc64le-unknown-linux-gnu
Target: powerpc64le-unknown-linux-gnu
 Build: powerpc64le-unknown-linux-gnu

Running the Boost testsuite on ppc64le shows:

trippels@gcc2-power8 status % g++ -O3 -c -std=c++14 unordered_set_test.ii
../libs/intrusive/test/unordered_set_test.cpp: In static member function
‘static void test_unordered_setValueTraits, CacheBegin, CompareHash,
Incremental::test_rehash(std::vectortypename ValueTraits::value_type,
boost::move_detail::true_) [with ValueTraits =
boost::intrusive::mhtraitsboost::intrusive::testvaluehooksvoid*, false,
boost::intrusive::unordered_set_member_hookboost::intrusive::void_pointervoid*,
boost::intrusive::optimize_multikeytrue, void, void,
boost::intrusive::testvaluehooksvoid*, false::node_; bool CacheBegin =
false; bool CompareHash = false; bool Incremental = true; typename
ValueTraits::value_type = boost::intrusive::testvaluehooksvoid*, false;
boost::move_detail::true_ = boost::move_detail::bool_true]’:
../libs/intrusive/test/unordered_set_test.cpp:448:1: error: unrecognizable
insn:
 }
 ^
(insn 72 71 73 2 (set (reg:V2DI 540 [ vect_cst_.26426 ])
(vec_concat:V2DI (reg/f:DI 150 virtual-stack-vars [ D.668853 ])
(reg:DI 541 [ D.668853 ])))
../boost/intrusive/detail/slist_node.hpp:55 -1
 (nil))
../libs/intrusive/test/unordered_set_test.cpp:448:1: internal compiler error:
in extract_insn, at recog.c:2341
0x109a7e33 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
../../gcc/gcc/rtl-error.c:110
0x109a7eaf _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
../../gcc/gcc/rtl-error.c:118
0x1096d767 extract_insn(rtx_insn*)
../../gcc/gcc/recog.c:2341
0x106c98bb instantiate_virtual_regs_in_insn
../../gcc/gcc/function.c:1598
0x106c98bb instantiate_virtual_regs
../../gcc/gcc/function.c:1966
0x106c98bb execute
../../gcc/gcc/function.c:2015
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.

Reducing...

[Bug target/65871] bzhi builtin/intrinsic wrongly assumes bzhi instruction doesn't set the ZF flag

2015-04-28 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65871

Uroš Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 CC||ubizjak at gmail dot com

--- Comment #2 from Uroš Bizjak ubizjak at gmail dot com ---
Created attachment 35411
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35411action=edit
Prototype patch for bextr and bzhi

Prototype patch that removes flag checks for bextr and bzhi insns.

[Bug libstdc++/60333] type_traits make_signed, make_unsigned missing support for long long enumerations

2015-04-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60333

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Tue Apr 28 13:21:54 2015
New Revision: 222526

URL: https://gcc.gnu.org/viewcvs?rev=222526root=gccview=rev
Log:
PR libstdc++/60333
* include/std/type_traits (__make_unsigned_selector_Tp, false, true):
Handle enumeration types larger than sizeof(long).
(__make_signed_selector_Tp, false, true): Find unsigned type then
make it signed.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
Likewise.
* testsuite/20_util/make_signed/requirements/typedefs-3.cc: New.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
dg-error.
* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: New.

Added:
trunk/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-3.cc
   
trunk/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-3.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/std/type_traits
trunk/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc
   
trunk/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
   
trunk/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc


[Bug target/65915] [6 Regression] FAIL: gcc.target/i386/avx512f-vrndscalepd-2.c (internal compiler error)

2015-04-28 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65915

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

   What|Removed |Added

   Target Milestone|--- |6.0

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com ---
Total regressions with -fpic -mcmodel=medium are:

FAIL: gcc.target/i386/avx512f-vrndscalepd-2.c (internal compiler error)
FAIL: gcc.target/i386/avx512f-vrndscalepd-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512f-vrndscaleps-2.c (internal compiler error)
FAIL: gcc.target/i386/avx512f-vrndscaleps-2.c (test for excess errors)
FAIL: gcc.target/i386/avx512vl-vrndscaleps-2.c (internal compiler error)
FAIL: gcc.target/i386/avx512vl-vrndscaleps-2.c (test for excess errors)


[Bug libgcc/62097] mipsel-sde-elf build fails on OS X 10.7 host

2015-04-28 Thread paul at xk7 dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62097

Paul Waring paul at xk7 dot net changed:

   What|Removed |Added

 CC||paul at xk7 dot net

--- Comment #3 from Paul Waring paul at xk7 dot net ---
I can confirm the same issue occurs for me on OS X  10.10 (Yosemite) and the
following:

GCC: 4.9.2
binutils: 2.25
MPFR: 3.1.2
MPC: 1.0.3
GMP: 6.0.0a
Newlib: 2.2.0-1

clang --version
Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.3.0
Thread model: posix

Is there anything I can do to help fix this bug?


[Bug libstdc++/65913] Linking failure without -latomic

2015-04-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65913

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
This is due to the changes for Bug 65033


[Bug libstdc++/60333] type_traits make_signed, make_unsigned missing support for long long enumerations

2015-04-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60333

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
Fixed on trunk


[Bug fortran/65894] [6 Regression] severe regression in gfortran 6.0.0

2015-04-28 Thread juergen.reuter at desy dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65894

--- Comment #10 from Jürgen Reuter juergen.reuter at desy dot de ---
(In reply to Dominique d'Humieres from comment #9)
  With the attached patch your small test case and the test suite runs
  w/o segfault now. Furthermore does gcc6 bootstrap and regtest ok
  with the patch.
 
 Confirmed. The bigger test in comment 2 runs without segfault also. However
 I get an ICE when compiling the full package at
 http://whizard.hepforge.org/versions/unofficial/whizard-2.2.6_alpha-20150426.
 tar.gz
 
 libtool: compile:  gfc -I../basics -I../utilities -I../testing -I../system
 -I../combinatorics -I../expr_base -I../physics -g -O2 -c evaluators.f90 
 -fno-common -o .libs/evaluators.o
 evaluators.f90:897:0:
 
   .or. qn_mask_rest
  1
 internal compiler error: in gfc_trans_assignment_1, at
 fortran/trans-expr.c:9203


I confirm this ICE with the patch and will provide a smaller test case soon.

[Bug c/65916] New: Unnecessary floating-point instruction causes runtime exception on PowerPC

2015-04-28 Thread nikolay.pakulin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65916

Bug ID: 65916
   Summary: Unnecessary floating-point instruction causes runtime
exception on PowerPC
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: nikolay.pakulin at gmail dot com
  Target Milestone: ---

Created attachment 35412
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35412action=edit
Test case to reproduce the issue

Writing 64-bit integers to memory on 32-bit PPC involves floating point
register FP0.  When floating-point support is disabled (bit FP is cleared in
MSR register) the generated code leads to exception FP unavailable interrupt.

The test case compiled by GCC cross compiler running on x86_64 Linux.

powerpc-elf-gcc -S -m32 -mcpu=e500mc uint64.c


-- uint64.c --
typedef unsigned long long u64;

u64 globvar;

void f(u64 arg) { 
  globvar = arg;
}
-- /uint64.c --

-- Generated ASM --
f:
stwu 1,-32(1)
stw 31,28(1)
mr 31,1
stw 3,8(31) # Copies 'arg' to the temporary on the stack
stw 4,12(31)# 
lis 9,globvar@ha
la 9,globvar@l(9)
lfd 0,8(31) # Loads the temporary to FP0 -- exception!
stfd 0,0(9) # Store FP0 to memory
addi 11,31,32
lwz 31,-4(11)
mr 1,11
blr
-- End of Generated ASM --

== GCC specs ==
Using built-in specs.
COLLECT_GCC=powerpc-elf-gcc
COLLECT_LTO_WRAPPER=/opt/crosstools/powerpc-elf-4.9.1-Linux-x86_64/bin/../libexec/gcc/powerpc-elf/4.9.1/lto-wrapper
Target: powerpc-elf
Configured with: ../gcc-4.9.1/configure --target=powerpc-elf
--prefix=/home/geist/svn/toolchains/powerpc-elf-4.9.1-Linux-x86_64
--enable-languages=c,c++ --disable-werror
Thread model: single
gcc version 4.9.1 (GCC) 
== End of GCC specs ==

The workaround is to compile with optimization turned on. With -O switch GCC
produces ASM without FP0:

powerpc-elf-gcc -S -m32 -mcpu=e500mc -O uint64.c
-- Generated optimized ASM --
f:
lis 9,globvar@ha
la 9,globvar@l(9)
stw 3,0(9)# direct write to the destination
stw 4,4(9)# 
blr
-- End of generated optimized ASM --


[Bug libstdc++/61645] forward_list::splice_after shall not throw exceptions

2015-04-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61645

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #7 from Jonathan Wakely redi at gcc dot gnu.org ---
done


[Bug target/65871] bzhi builtin/intrinsic wrongly assumes bzhi instruction doesn't set the ZF flag

2015-04-28 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65871

Uroš Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-04-28
 Ever confirmed|0   |1

--- Comment #3 from Uroš Bizjak ubizjak at gmail dot com ---
(In reply to James Almer from comment #1)
 The same apparently happens with bextr, blsi, blsr, and most (if not all) of
 AMD's tbm instructions. They set the ZF flag but gcc still generates a test
 instruction.

Please see the patch, attached in Comment #2.

While I can see the use (and benefit) to model the patterns that also set CC
register internally for BEXTR and BZHI instructions, I don't think other listed
instructions have clear usage scenarios to warrant additional patterns.

Can you perhaps show the benefit to have more insns modelled this way?

[Bug libstdc++/61645] forward_list::splice_after shall not throw exceptions

2015-04-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61645

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Tue Apr 28 13:05:33 2015
New Revision: 222525

URL: https://gcc.gnu.org/viewcvs?rev=222525root=gccview=rev
Log:
PR libstdc++/61645
* include/bits/forward_list.h (forward_list::splice_after): Add
noexcept.
* include/bits/forward_list.tcc (forward_list::splice_after):
Likewise.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/forward_list.h
trunk/libstdc++-v3/include/bits/forward_list.tcc


[Bug libgcc/65902] GCC-5.1 fails to bootstrap for eCos/arm-eabi

2015-04-28 Thread rearnsha at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65902

Richard Earnshaw rearnsha at gcc dot gnu.org changed:

   What|Removed |Added

 Target||arm-eabi

--- Comment #2 from Richard Earnshaw rearnsha at gcc dot gnu.org ---
The standard headers should only be defining bool if stdbool.h has been
included.  So this looks more like a build environment error than a bug in GCC.


[Bug target/65837] [arm-linux-gnueabihf] lto1 target specific builtin not available

2015-04-28 Thread prathamesh3492 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65837

--- Comment #19 from prathamesh3492 at gcc dot gnu.org ---
(In reply to prathamesh3492 from comment #18)
 Created attachment 35420 [details]
 patch to override default options by options in object file
 
 Hi,
 
 The following untested patch gives preference to option value in object file.
 In run_gcc(),
 options from COLLECT_GCC_OPTIONS which are taken from command line are
 stored in decoded_options.
 options from object file are stored in fdecoded_options.
 so override the option in decoded_options if it is present in
 fdecoded_options.
 
 With the patch this works:
 arm-linux-gnueabihf-gcc test.c -mfpu=neon -flto -c
 arm-linux-gnueabihf-gcc test.o -flto 
 only passes -mfpu=neon to lto1
 
 However the patch doesn't work when same option is passed different values
 at compile and link-time:
 arm-linux-gnuebihf-gcc test.c -mfpu=neon -flto -c
 arm-linux-gnueabihf-gcc test.o -mfpu=vfpv3-d16 -flto
 
 In this case, -mfpu=neon is still passed to lto1, since the patch prefers
 option value from object file.
 Without the patch, the option from the command line was given preference.
 
 for both the following cases: 
 arm-linux-gnueabihf-gcc test.o -flto
 arm-linux-gnueabihf-gcc test.o -flto -mfpu=vfpv3-d16
 
 COLLECT_GCC_OPTIONS contains -mfpu=vfpv3-d16, however in the first case it
 isn't explictly passed by user, so passing -mfpu=neon
 would be correct. In the second case, since -mfpu=vfpv3-d16 is passed
 intentionally by user, should it be considered
 as an error - conflicting options ?
 
 Unfortunately, it looks like there is no way to distinguish between options
 defined by default and explicitly passed options from COLLECT_GCC_OPTIONS
 and that's the only way command line options are passed to lto-wrapper from
 the driver. One way would be to modify COLLECT_GCC_OPTIONS in the driver to
 indicate which options were explicitly passed from command line.
 For instance, additionally COLLECT_GCC_OPTIONS would contain 
 -mfpu=vfpv3-d16-explicit to indiciate that -mfpu=vfpv3-d16 was
 passed from command line and not set by default. In lto-wrapper the options
 could be parsed to check if they have explicit suffix and thus distinguish
 between explicit and defualt defined options.
 Does that sound reasonable ? I would be grateful for suggestions.

Instead of modifying COLLECT_GCC_OPTIONS, maybe create another environment
variable say COLLECT_GCC_OPTIONS_EXPLICIT and if an option is passed on
command line, put it in COLLECT_GCC_OPTIONS_EXPLICIT, so lto-wrapper
can distinguish between default defined options and options passed on
command line.

Thank you,
Prathamesh
 
 Thank you,
 Prathamesh


[Bug tree-optimization/51513] Only partially optimizes away __builtin_unreachable switch default case

2015-04-28 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51513

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 CC||bergner at gcc dot gnu.org

--- Comment #6 from Andrew Pinski pinskia at gcc dot gnu.org ---
*** Bug 65922 has been marked as a duplicate of this bug. ***


[Bug middle-end/65922] Switch statement with __builtin_unreachable creates a wild branch

2015-04-28 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65922

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org ---
Dup of bug 51513.

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


[Bug middle-end/65922] Switch statement with __builtin_unreachable creates a wild branch

2015-04-28 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65922

Peter Bergner bergner at gcc dot gnu.org changed:

   What|Removed |Added

 Status|RESOLVED|CLOSED

--- Comment #3 from Peter Bergner bergner at gcc dot gnu.org ---
Closing as a DUP.  I forgot to include the test case, so for posterity, here is
the test case reduced from PHP.

void
foo (unsigned char *ptr, unsigned int cond)
{
  switch (cond)
{
case 0:
  return;
case 1:
case 2:
case 3:
case 4:
case 6:
  *ptr += 1;
  return;
case 5:
  *ptr += 2;
  return;
default:
  __builtin_unreachable ();
  break;
}
}


[Bug tree-optimization/65917] [6.0 regression] FAIL: gcc.dg/tree-ssa/20030922-2.c scan-tree-dump-times dom1 if 2

2015-04-28 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65917

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 CC||law at redhat dot com

--- Comment #3 from Jeffrey A. Law law at redhat dot com ---
 if (_8 != _14)
goto bb 3;
  else
goto bb 6;

  bb 3:
  target_bb.1_15 = target_bb;
  if (_14 == target_bb.1_15)
goto bb 4;
  else
goto bb 6;

  bb 4:
  if (_8 != target_bb.1_15)
goto bb 5;
  else
goto bb 6;


Presumably depending on the ordering in the conditionals, we should discover
that in bb4 _8 and _15 are equal and eliminate the test.


[Bug libstdc++/65913] Linking failure without -latomic

2015-04-28 Thread rth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65913

Richard Henderson rth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rth at gcc dot gnu.org

--- Comment #2 from Richard Henderson rth at gcc dot gnu.org ---
Created attachment 35416
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35416action=edit
proposed patch

jwakely suggested on irc reverting the -alignment fake pointer
for the integral type template.  

Note that there are weird targets that have non-power-of-two
integral types:

config/avr/avr-modes.def:FRACTIONAL_INT_MODE (PSI, 24, 3);

Thankfully, avr doesn't also have atomic operations on this type,
so the second part of fold_builtin_atomic_always_lock_free would fail.

But I think we can also do better for non-integral types, so it's
probably better to attack this inside the compiler.


[Bug tree-optimization/65917] [6.0 regression] FAIL: gcc.dg/tree-ssa/20030922-2.c scan-tree-dump-times dom1 if 2

2015-04-28 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65917

Andreas Schwab sch...@linux-m68k.org changed:

   What|Removed |Added

 Status|WAITING |NEW

--- Comment #2 from Andreas Schwab sch...@linux-m68k.org ---
r222492 is still failing.


[Bug c++/65734] Yet another case of lost alignment by stor_layout

2015-04-28 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65734

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
Fixed.


[Bug target/65914] [6 Regression] error: unrecognizable insn

2015-04-28 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65914

--- Comment #2 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Started with r222514 so possibly a latent issue.


[Bug bootstrap/11660] libffi only builds when java is selected as language

2015-04-28 Thread egall at gwmail dot gwu.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11660

Eric Gallager egall at gwmail dot gwu.edu changed:

   What|Removed |Added

 CC||egall at gwmail dot gwu.edu

--- Comment #11 from Eric Gallager egall at gwmail dot gwu.edu ---
Doesn't libffi also get built if go is selected as a language? I can't verify
it for myself due to bug 46986, but based on my reading of Makefile.def, it
seems like building libgo should cause libffi to be built, as well...


[Bug target/65697] __atomic memory barriers not strong enough for __sync builtins

2015-04-28 Thread jgreenhalgh at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65697

--- Comment #43 from James Greenhalgh jgreenhalgh at gcc dot gnu.org ---
(In reply to torvald from comment #37)
 (In reply to James Greenhalgh from comment #35)
  (In reply to torvald from comment #32)
   (In reply to James Greenhalgh from comment #28)
This also gives us an easier route to fixing any issues with the
acquire/release __sync primitives (__sync_lock_test_and_set and
__sync_lock_release) if we decide that these also need to be stronger 
than
their C++11 equivalents.
   
   I don't think we have another case of different __sync vs. __atomics
   semantics in case of __sync_lock_test_and_set.  The current specification
   makes it clear that this is an acquire barrier, and how it describes the
   semantics (ie, loads and stores that are program-order before the acquire 
   op
   can move to after it) , this seems to be consistent with the effects C11
   specifies for acquire MO (with perhaps the distinction that C11 is clear
   that acquire needs to be paired with some release op to create an ordering
   constraint).
  
  I think that the question is which parts of a RMW operation with
  MEMMODEL_ACQUIRE semantics is ordered. My understanding is that in C++11
  MEMMODEL_ACQUIRE only applies to the load half of the operation. So an
  observer to:
  
atomic_flag_test_and_set_explicit(foo, memory_order_acquire)
atomic_store_exlicit (bar, 1, memory_model_relaxed)
  
 That depends on your observer.  When reasoning about C11, please let's use
 complete examples (and ideally, run them through cppmem).  For example, if
 the observation is done by a pair of relaxed-MO loads, bar==1  foo==0 can
 be observed:
 
 int main() {
   atomic_int foo = 0; 
   atomic_int bar = 0; 
   {{{ {
 r1 = cas_strong(foo, 0, 1);
 bar.store(1, memory_order_relaxed);
   } ||| {
 r2 = bar.load(memory_order_relaxed).readsvalue(1); 
 r3 = foo.load(memory_order_relaxed).readsvalue(0); 
   } }}};
   return 0; }

Thanks for that, and sorry again for my sloppy terminology. I did try to write
a
cppmem example, but I couldn't find the syntax for a CAS. If I could have, this
is
what I would have written, and gets the results I had expected and was trying
to express.

 
  Is permitted to observe a write to bar before a write to foo (but not before
  the read from foo).
 
 How does one observe a load in C11 (ie, so that before the read from foo
 is defined)?  You can constrain the reads-from of a load, but the load
 itself is not observable as an effect.

Sorry, this is ARM memory model terminology leaking across to my C11 examples,
but
even then what I was saying doesn't make sense. To observe a load in the ARM
model:

A read of a location in memory is said to be observed by an observer when a
 subsequent write to the location by the same observer has no effect on the
value
 returned by the read.

But you are right, this is not interesting to model.


 I think I get what you're trying to say regarding the load half but I
 would phrase it differently: If there could be another release store to foo
 that the CAS/TAS reads-from, then moving the store to bar before the load
 would risk creating a cycle between inter-thread happens-before and
 sequenced-before-created intra-thread happens-before.  (Note that the later
 isn't visible to other threads though, except through additional
 inter-thread synchronization.)
 
 Perhaps one could also say that moving the store to bar before the store to
 foo could result in the CAS/TAS not being atomic -- but this is just
 reliably observable if the foo observation is a CAS/TAS by itself (so it's
 totally ordered with the other CAS), or if there is a inter-thread
 happens-before between the observation of bar and the store to bar (which
 means using a release store for bar).
 
 I'm discussing these aspects because I think it matters which observations
 are actually possible in a reliable way.  It matters for C11, and it may
 matter for the __sync semantics as well because while the __sync functions
 promise TSO, we don't really do so for all (nonatomic) loads or stores
 anywhere else in the program...
 
 IOW, can we actually come up with reliable and correct counter-examples
 (either using the C11 or __sync interfaces) for the guarantees we think ARM
 might not provide?
 
  My reading of the Itanium ABI is that the acquire barrier applies to the
  entire operation (Andrew, I think you copied these over exactly backwards in
  comment 34 ;) ):
  
Disallows the movement of memory references to visible data from
 after the intrinsic (in program order) to before the intrinsic (this
 behavior is desirable at lock-acquire operations, hence the name).
  
  The definition of __sync_lock_test_and_set is:
  
Behavior:
 • Atomically store the supplied value in *ptr and return the old value
   of *ptr. (i.e.)
 { tmp = *ptr; *ptr = value; return tmp; }
 • Acquire barrier.
 
 Hmm.  I don't 

[Bug tree-optimization/65918] Optimized code ( -O0) on 2-dim array iteration incorrect

2015-04-28 Thread habanero_pizza at yahoo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65918

--- Comment #3 from J. W. Mitchell habanero_pizza at yahoo dot com ---
Indeed.  Apologies for the submission


[Bug c++/65923] New: False positive for warning about literal operator suffix and using

2015-04-28 Thread arnetheduck at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65923

Bug ID: 65923
   Summary: False positive for warning about literal operator
suffix and using
   Product: gcc
   Version: 4.9.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: arnetheduck at gmail dot com
  Target Milestone: ---

In the following snippet, a warning is given when bringing a chrono literal
into the global namespace explicity, but not when importing all literals. Looks
like the warning shouldn't be there, since the two do the same thing, and using
directives are the way to go with literal operators.

cat /tmp/tmp.cc:
#include chrono

using std::literals::chrono_literals::operators;  // warning here
using std::literals;  // no warning here


/usr/local/gcc49/bin/g++ -c -std=c++14 /tmp/tmp.cc:
/tmp/tmp.cc:4:47: warning: literal operator suffixes not preceded by ‘_’ are
reserved for future standardization
 using std::literals::chrono_literals::operators;  // warning here

[Bug tree-optimization/65917] [6.0 regression] FAIL: gcc.dg/tree-ssa/20030922-2.c scan-tree-dump-times dom1 if 2

2015-04-28 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65917

--- Comment #4 from Jeffrey A. Law law at redhat dot com ---
We'll probably need to XFAIL this for now.

This is definitely a case where we were just getting lucky before and the new
code to canonicalize the comparison arguments causes us not to get lucky.

The single use heuristic doesn't help here, because both operands have multiple
uses.

I'd pondered walking up the use-def chains to guess which operand is more
expensive to compute and use that as a heuristic as well, but in this case it'd
do the opposite of what we want.

I don't see other obvious heuristics that would resolve this issue.

The right way to fix this would be to unify cprop and simplification -- ie,
when we have a statement that references an SSA_NAME with one of these
equivalences, we need to try both SSA_NAMEs and see if it simplifies.  I've
avoided doing that simply because it hasn't seemed worth the effort and
compile-time cost.


[Bug web/64968] Upgrade GCC Bugzilla to 5.0

2015-04-28 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64968

--- Comment #19 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
See for example:
http://thread.gmane.org/gmane.comp.gnu.binutils.bugs/19841/focus=19855
When this thread is displayed in mutt the highlighted messages appears
in the wrong place.


[Bug c/65892] gcc fails to implement N685 aliasing of union members

2015-04-28 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65892

--- Comment #9 from joseph at codesourcery dot com joseph at codesourcery dot 
com ---
The rule certainly has nothing to do with whether the struct types are 
defined inside the union definition, or defined outside and then used 
inside via a tag or typedef.

The it is permitted wording is poorly defined, and the C99 changes 
confused this through failing to realise how it's poorly defined.  In C90, 
the paragraph starts With one exception, if a member of a union object is 
accessed after a value has been stored in a different member of the 
object, the behavior is implementation-defined.[41]  One special guarantee 
is made ... it is permitted   This reads to me like it is permitted 
was intended as an exception to the general rule of behavior being 
implementation-defined (that is, it was defining one case of type punning, 
which was more generally defined non-normatively in the footnote added in 
C99 TC3).

The difficulty with it is permitted is there are any number of cases 
where other wording indicates something is not permitted that it could be 
interpreted as overriding - just saying it is permitted fails to say 
which are or are not overridden.  (As a C11 example, something might not 
be permitted because it's a data race, for example, but accessing a common 
initial sequence can hardly be intended to override the normal rules about 
data races.)  So the authors of N685 read it is permitted as relating 
not to the previous sentence in the same paragraph about accessing 
different union members, but as relating to completely separate rules 
about aliasing.  The visible union rule was then inserted for C99, thereby 
serving to confuse things further by supporting the suggestion that it is 
permitted relates to aliasing.

DR#236 then considered a different case of aliasing through pointers to 
union members.  However, the response never decided the question of 
whether the accesses must visibly be through the union, or whether it's 
sufficient for the declaration of the union to be visible.

Basing things on whether a union is visible in the translation unit is 
clearly a bad rule because of action-at-a-distance effects (the visible 
union might be in a header included for some completely unrelated purpose, 
but would still inhibit optimization).

(Note that the exact example given in this bug is invalid as the union has 
active member s1, but is modified via member s2; you can only inspect 
common members of non-active union members, not modify them.  But 
presumably using .s2 in the initializer would still show the issue.)

Thus, it is permitted needs reworking to describe what it's an exception 
to.  To the extent that it's an exception to aliasing rules, I think that 
should only be where the union is actually used for the accesses in 
question (in which case no exception is actually needed beyond defining 
the layout requirements and making the type punning rules normative), and 
DR#236 should be clarified accordingly.


[Bug target/65871] bzhi builtin/intrinsic wrongly assumes bzhi instruction doesn't set the ZF flag

2015-04-28 Thread jamrial at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65871

--- Comment #4 from James Almer jamrial at gmail dot com ---
(In reply to Uroš Bizjak from comment #3)
 Please see the patch, attached in Comment #2.
 
 While I can see the use (and benefit) to model the patterns that also set CC
 register internally for BEXTR and BZHI instructions, I don't think other
 listed instructions have clear usage scenarios to warrant additional
 patterns.
 
 Can you perhaps show the benefit to have more insns modelled this way?

Not really, i simply assumed that taking into consideration what flags these
instructions affected in every case was the intended behavior, so figured it
was worth pointing them out.
I'm mainly interested in bzhi (and by extension bextr).

[Bug web/64968] Upgrade GCC Bugzilla to 5.0

2015-04-28 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64968

--- Comment #18 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
One thing I've noticed is that the emails to gcc-bugs now use the local time
of the user. So the sorting isn't correct anymore if people from different
time zones comment.
(The same issue also happens on sourceware.org/bugzilla/)


[Bug fortran/65894] [6 Regression] severe regression in gfortran 6.0.0

2015-04-28 Thread juergen.reuter at desy dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65894

--- Comment #11 from Jürgen Reuter juergen.reuter at desy dot de ---
Here is the small test case for the ICE with the patch provided Andre
Vehreschild:

gfortran -c evaluators.f90
evaluators.f90:40:0:

 .or. qn_mask_rest
 1
internal compiler error: in gfc_trans_assignment_1, at
fortran/trans-expr.c:9187

evaluators.f90:40:0: internal compiler error: Abort trap: 6
gfortran: internal compiler error: Abort trap: 6 (program f951)

This is the code:

module evaluators
  implicit none
  private
  type :: quantum_numbers_mask_t
   contains
 generic :: operator(.or.) = quantum_numbers_mask_or
 procedure, private :: quantum_numbers_mask_or
  end type quantum_numbers_mask_t

  type :: index_map_t
 integer, dimension(:), allocatable :: entry
  end type index_map_t
  type :: prt_mask_t
 logical, dimension(:), allocatable :: entry
  end type prt_mask_t
  type :: qn_mask_array_t
 type(quantum_numbers_mask_t), dimension(:), allocatable :: mask
  end type qn_mask_array_t

contains
  elemental function quantum_numbers_mask_or (mask1, mask2) result (mask)
type(quantum_numbers_mask_t) :: mask
class(quantum_numbers_mask_t), intent(in) :: mask1, mask2
  end function quantum_numbers_mask_or

  subroutine make_product_interaction 
  (prt_is_connected, qn_mask_in, qn_mask_rest)
type(prt_mask_t), dimension(2), intent(in) :: prt_is_connected
type(qn_mask_array_t), dimension(2), intent(in) :: qn_mask_in
type(quantum_numbers_mask_t), intent(in) :: qn_mask_rest
type(index_map_t), dimension(2) :: prt_index_in
integer :: i
type(quantum_numbers_mask_t), dimension(:), allocatable :: qn_mask
allocate (qn_mask (2))
do i = 1, 2
   qn_mask(prt_index_in(i)%entry) = 
pack (qn_mask_in(i)%mask, prt_is_connected(i)%entry) 
.or. qn_mask_rest
end do
  end subroutine make_product_interaction
end module evaluators

Re: [Bug rtl-optimization/65912] New: x_rtl.x_frame_offset not updated after frame related insn deleted

2015-04-28 Thread pinskia


 On Apr 27, 2015, at 9:10 PM, jiwang at gcc dot gnu.org 
 gcc-bugzi...@gcc.gnu.org wrote:
 
 Has anyone run into this issue on other architecture like MIPS, PPC?

Yes on both. 

[Bug rtl-optimization/65912] x_rtl.x_frame_offset not updated after frame related insn deleted

2015-04-28 Thread pinskia at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65912

--- Comment #1 from pinskia at gmail dot com pinskia at gmail dot com ---
 On Apr 27, 2015, at 9:10 PM, jiwang at gcc dot gnu.org 
 gcc-bugzi...@gcc.gnu.org wrote:
 
 Has anyone run into this issue on other architecture like MIPS, PPC?

Yes on both.


[Bug bootstrap/65910] r222473 breaks x86_64 darwin bootstrap

2015-04-28 Thread cmtice at google dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65910

--- Comment #4 from Caroline Tice cmtice at google dot com ---
Has anyone actually committed this fix?  I'm not seeing it in my tree yet


[Bug c/65920] New: Not able to compile a code

2015-04-28 Thread imran.siddiqui at live dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65920

Bug ID: 65920
   Summary: Not able to compile a code
   Product: gcc
   Version: 4.8.3
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: imran.siddiqui at live dot com
  Target Milestone: ---

Created attachment 35418
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35418action=edit
Error

I got an upgrade in AIX server i.e. 7.1 with the DB2 version 9.5. Whenever we
complied a legacy C code in previous AIX server i.e 5.3 with Db2 version 9.5
and GCC version 2.9 it worked fined.

But now i am facing issues in compling.It is very critical for my project to
solve this..

I am attaching some errors


[Bug c++/65920] Not able to compile a code

2015-04-28 Thread imran.siddiqui at live dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65920

Imran imran.siddiqui at live dot com changed:

   What|Removed |Added

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

--- Comment #2 from Imran imran.siddiqui at live dot com ---
Thans for the quick reply. The code is perfectly fine as it was workinng as i
mentioned earlier

But after the upgrade only it started throwing the error.

I tried repalcing char * with string in the log.cpp..but again it left me some
other errors


[Bug tree-optimization/65887] remove va_arg ap copies

2015-04-28 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65887

vries at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from vries at gcc dot gnu.org ---
Patch committed, marking resolved - fixed.


[Bug fortran/65921] New: GFortran should use __builtin_mul_overflow when checking allocation sizes

2015-04-28 Thread jb at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65921

Bug ID: 65921
   Summary: GFortran should use __builtin_mul_overflow when
checking allocation sizes
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jb at gcc dot gnu.org
  Target Milestone: ---

As of the GCC-5 release there is a new __builtin_mul_overflow builtin
(https://gcc.gnu.org/gcc-5/changes.html ). GFortran could use this instead of
the current overflow checks

1) In the frontend, code generated for the ALLOCATE statement.

2) In libgfortran/runtime/memory.c (xmallocarray).


[Bug c++/65896] [5/6 Regression] Erroneous uninitialized variable access error in constexpr function with temporary variables

2015-04-28 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65896

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Tue Apr 28 21:27:17 2015
New Revision: 222549

URL: https://gcc.gnu.org/viewcvs?rev=222549root=gccview=rev
Log:
PR c++/65896
* constexpr.c (cxx_eval_store_expression): Don't try to actually
store an empty class.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-empty9.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/constexpr.c


[Bug libquadmath/65757] gfortran gives incorrect result for anint with real*16 argument

2015-04-28 Thread sgk at troutmask dot apl.washington.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65757

--- Comment #10 from Steve Kargl sgk at troutmask dot apl.washington.edu ---
On Tue, Apr 28, 2015 at 05:32:11PM +, joseph at codesourcery dot com wrote:
 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65757
 
 --- Comment #9 from joseph at codesourcery dot com joseph at codesourcery 
 dot com ---
 Fixed in glibc (commit 7d0b2575416aec2717e8665287d0ab77826a0ade).  I'd 
 advise merging to trunk GCC libquadmath all relevant glibc changes since 
 the last merges in 2012, rather than cherry-picking just this fix 
 (although if you wish to fix things on release branches, cherry-picking 
 just the critical fixes would be appropriate there).
 

Short of grabbing the entire glibc repository, how does
one grab the current libquadmath code?  In particular, 
gitweb suggests that there isn't a component of glibc
with the name libquadmath.


[Bug c/65920] Not able to compile a code

2015-04-28 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65920

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID
   Severity|critical|normal

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
Sounds like you don't know that string is now in the std namespace.  Either add
using std::string; after the include of string.h or change all references to
string to std::string.

You need to figure out where LogFile is defined and compile that c++ file too.

This is not a GCC bug but rather an issue with your code.
If you want to ask C++ questions it is best to ask on a different place than
here.  Also how to use gcc it would be best to ask on gcc-h...@gcc.gnu.org
rather than in a bug report.


[Bug tree-optimization/65887] remove va_arg ap copies

2015-04-28 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65887

--- Comment #5 from vries at gcc dot gnu.org ---
Author: vries
Date: Tue Apr 28 20:58:51 2015
New Revision: 222546

URL: https://gcc.gnu.org/viewcvs?rev=222546root=gccview=rev
Log:
Remove ifn_va_arg ap fixup

2015-04-28  Tom de Vries  t...@codesourcery.com

PR tree-optimization/65887
* gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.

* c-common.c (build_va_arg): Mark va_arg ap argument as addressable.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/gimplify.c


[Bug libquadmath/65757] gfortran gives incorrect result for anint with real*16 argument

2015-04-28 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65757

--- Comment #11 from joseph at codesourcery dot com joseph at codesourcery dot 
com ---
I don't know what process Jakub and Tobias used (a) to identify relevant 
files / changes in glibc and (b) to make all the changes to operate on 
__float128 rather than long double.  Roughly, it's 
sysdeps/ieee754/ldbl-128, *plus* strtod-related files from stdlib/, *plus* 
printf-related files from stdio-common, *plus* some functions (especially 
complex.h functions) from math/, that are used in libquadmath and so may 
need updating for changes made in glibc.


[Bug c++/65920] Not able to compile a code

2015-04-28 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65920

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org ---
well GCC 2.9 was not standard complaint with respect of C++ STL so the string
class was not part of the std namespace.  But that changed with 3.0 which was
over 10 years ago now.  Again this is not a question about a GCC bug but rather
a standard C++ question.


[Bug fortran/65548] [5/6 Regression] gfc_conv_procedure_call

2015-04-28 Thread vehre at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65548

vehre at gcc dot gnu.org changed:

   What|Removed |Added

  Attachment #35318|0   |1
is obsolete||

--- Comment #29 from vehre at gcc dot gnu.org ---
Created attachment 35419
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35419action=edit
Candidate patch for latest regressions.

Juergen, please test.


[Bug c/65901] no warning or error for va_arg (ap, void)

2015-04-28 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65901

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Tue Apr 28 08:36:50 2015
New Revision: 222515

URL: https://gcc.gnu.org/viewcvs?rev=222515root=gccview=rev
Log:
PR c/65901
* c-typeck.c (c_build_va_arg): Require TYPE be a complete type.

* gcc.c-torture/compile/pr48767.c (foo): Add dg-error.
* gcc.dg/pr65901.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr65901.c
Modified:
trunk/gcc/c/ChangeLog
trunk/gcc/c/c-typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.c-torture/compile/pr48767.c


[Bug c/65901] no warning or error for va_arg (ap, void)

2015-04-28 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65901

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org ---
Fixed for GCC 6.


[Bug target/65832] Inefficient vector construction

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

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Another example where the vectorizer thinks vectorization is profitable:

#define N 16

unsigned int out[N];
unsigned int in[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

__attribute__ ((noinline)) int
main1 (unsigned int x, unsigned int y)
{
  int i;
  unsigned int a0, a1, a2, a3;

  a0 = in[0];
  a1 = in[1];
  a2 = in[2];
  a3 = in[3];

  out[0] = a0 * x;
  out[1] = a1 * y;
  out[2] = a2 * x;
  out[3] = a3 * y;
}

generates

main1:
.LFB0:
.cfi_startproc
movl%edi, -12(%rsp)
movd-12(%rsp), %xmm0
movl%esi, -12(%rsp)
movd-12(%rsp), %xmm3
movdqa  in(%rip), %xmm2
punpckldq   %xmm3, %xmm0
psrlq   $32, %xmm2
punpcklqdq  %xmm0, %xmm0
movdqa  %xmm0, %xmm1
psrlq   $32, %xmm0
pmuludq %xmm2, %xmm0
pshufd  $8, %xmm0, %xmm0
pmuludq in(%rip), %xmm1
pshufd  $8, %xmm1, %xmm1
punpckldq   %xmm0, %xmm1
movaps  %xmm1, out(%rip)
ret

slightly less obfuscated when we allow gpr xmm moves with -mtune=intel:

main1:
.LFB0:
.cfi_startproc
movd%edi, %xmm0
movd%esi, %xmm3
movdqa  in(%rip), %xmm2
punpckldq   %xmm3, %xmm0
punpcklqdq  %xmm0, %xmm0
psrlq   $32, %xmm2
movdqa  %xmm0, %xmm1
psrlq   $32, %xmm0
pmuludq in(%rip), %xmm1
pmuludq %xmm2, %xmm0
pshufd  $8, %xmm1, %xmm1
pshufd  $8, %xmm0, %xmm0
punpckldq   %xmm0, %xmm1
movdqa  %xmm1, out(%rip)
ret

so for { x, y, x, y } construction we generate

movd%edi, %xmm0
movd%esi, %xmm3
punpckldq   %xmm3, %xmm0
punpcklqdq  %xmm0, %xmm0

no f*** idea where all the shifting and shuffling comes from...

This is just

  vect_cst_.7_18 = {x_6(D), y_9(D), x_6(D), y_9(D)};
  vect_a0_2.5_17 = MEM[(unsigned int *)in];
  vect__7.6_19 = vect_a0_2.5_17 * vect_cst_.7_18;
  MEM[(unsigned int *)out] = vect__7.6_19;


[Bug target/65832] Inefficient vector construction

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

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||uros at gcc dot gnu.org

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Somehow we get into very weird initial RTL generated by expand...

(insn 12 11 13 (set (reg:V2DI 101)
(mult:V2DI (zero_extend:V2DI (vec_select:V2SI (reg:V4SI 95 [
vect_cst_.7 ])
(parallel [
(const_int 0 [0])
(const_int 2 [0x2])
])))
(zero_extend:V2DI (vec_select:V2SI (mem/c:V4SI (reg/f:DI 94) [1
MEM[(unsigned int *)in]+0 S16 A256])
(parallel [
(const_int 0 [0])
(const_int 2 [0x2])
]) t.c:17 -1
 (nil))

(WTF!?  As if there were no integer vector multiply with SSE2 but only DImode
ones?!)


[Bug tree-optimization/65875] [5/6 Regression] ICE: Segmentation fault

2015-04-28 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65875

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org ---
(In reply to Richard Biener from comment #4)
 For h we get into the loop PHI handling code which drops to INF-1 if it
 iterates
 too much.  The rest probably ripples down from that.
 
 I can't see where that [1, 0x7ff] issue happens.

Current trunk, -O2 -fdump-tree-vrp-details on the testcase has in vrp1 dump:
  bb 2:
  g.0_9 = g;
  if (g.0_9  0)
goto bb 3;
  else
goto bb 9;

  bb 3:
  _12 = -g.0_9;
  i_13 = (long int) _12;
  goto bb 9;

and

Visiting statement:
_12 = -g.0_25;
Found new range for _12: [1, +INF(OVF)]
marking stmt to be not simulated again

Visiting statement:
i_13 = (long int) _12;
Found new range for i_13: [1, +INF(OVF)]
marking stmt to be not simulated again

The point was that the cast from 32-bit signed to 64-bit signed also should
imply that the value is not bigger than INT_MAX, and that is what we would do
if range for _12 was say [1, 0x7fff].

And for h, the point was that if only constants are assigned to the variable in
a loop, then no matter how many iterations the loop has, the resulting value
will only be one of the constants (thus smallest range covering those).
Or in this particular case, as the h = 1 assignments is only in endless loop,
we could have computed just [0, 0] (but that is probably too rare to care
about).


[Bug target/63503] [AArch64] A57 executes fused multiply-add poorly in some situations

2015-04-28 Thread thopre01 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63503

--- Comment #25 from Thomas Preud'homme thopre01 at gcc dot gnu.org ---
Author: thopre01
Date: Tue Apr 28 08:10:44 2015
New Revision: 222512

URL: https://gcc.gnu.org/viewcvs?rev=222512root=gccview=rev
Log:
2015-04-28  Thomas Preud'homme  thomas.preudho...@arm.com

gcc/
PR target/63503
* config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
aarch64-*-*.
* config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
* config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
(AARCH64_TUNE_FMA_STEERING): Likewise.
* config/aarch64/aarch64-cores.def: Set
AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
FMUL/FMADD instructions.
* config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
(aarch64_override_options): Include cortex-a57-fma-steering.h. Call
aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
* config/aarch64/cortex-a57-fma-steering.h: New file.
* config/aarch64/cortex-a57-fma-steering.c: Likewise.

Added:
trunk/gcc/config/aarch64/cortex-a57-fma-steering.c
trunk/gcc/config/aarch64/cortex-a57-fma-steering.h
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config.gcc
trunk/gcc/config/aarch64/aarch64-cores.def
trunk/gcc/config/aarch64/aarch64.c
trunk/gcc/config/aarch64/aarch64.h
trunk/gcc/config/aarch64/t-aarch64


[Bug other/65911] New: [6 Regression] r222508 breaks clang-tblgen

2015-04-28 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65911

Bug ID: 65911
   Summary: [6 Regression] r222508 breaks clang-tblgen
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
  Assignee: unassigned at gcc dot gnu.org
  Reporter: trippels at gcc dot gnu.org
CC: tbsaunde at gcc dot gnu.org
  Target Milestone: ---

Starting with r222508 LLVM doesn't build anymore on ppc64le:

trippels@gcc2-power8 llvm_build % ./bin/clang-tblgen -gen-clang-attr-impl -I
/home/trippels/llvm/tools/clang/include/clang/AST/../../ -I
/home/trippels/llvm/tools/clang/include/clang/AST -I
/home/trippels/llvm/lib/Target -I /home/trippels/llvm/include
/home/trippels/llvm/tools/clang/include/clang/AST/../Basic/Attr.td -o
/home/trippels/llvm_build/tools/clang/include/clang/AST/AttrImpl.inc.tmp
Program received signal SIGSEGV, Segmentation fault.
0x3fffb79d1ee4 in __strcmp_power7 () from /lib64/libc.so.6
(gdb) bt
#0  0x3fffb79d1ee4 in __strcmp_power7 () from /lib64/libc.so.6
#1  0x1005c504 in llvm::cl::generic_parser_base::findOption(char
const*) ()
#2  0x10004f9c in _GLOBAL__sub_I_TableGen.cpp ()


[Bug tree-optimization/65875] [5/6 Regression] ICE: Segmentation fault

2015-04-28 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65875

--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org ---
I meant in the first loop.
But we handle:
int b, c, e;

long
foo (int x, int y)
{
  long h = 0;
  for (b = 0; b  x; b++)
for (c = 0; c  y; c++)
  if (e)
h = 1;
  return h + 4;
}
correctly, it is only as soon as one of those loops turns into endless loop:
int b, c, e;

long
foo (int x, int y)
{
  long h = 0;
  for (b = 0; b  x; b++)
for (c = 0; c  y;)
  if (e)
h = 1;
  return h + 4;
}
that we lose track.  But, if it is only for endless loops, probably nothing to
worry about, the finite loops are much more important.


[Bug libstdc++/65913] Linking failure without -latomic

2015-04-28 Thread yan12125 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65913

--- Comment #3 from yan12125 at gmail dot com ---
Sorry, but I don't quite understand. Does that mean for all the future versions
(5.2, 6.0, etc.) -latomic flag is necessary if atomicT::is_lock_free() is
used in my program?


[Bug bootstrap/65910] r222473 breaks x86_64 darwin bootstrap

2015-04-28 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65910

David Edelsohn dje at gcc dot gnu.org changed:

   What|Removed |Added

 Target|x86_64-apple-darwin14   |x86_64-apple-darwin14,
   ||powerpc-ibm-aix*
 Status|NEW |RESOLVED
 CC||dje at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #6 from David Edelsohn dje at gcc dot gnu.org ---
Patch committed.


[Bug web/64968] Upgrade GCC Bugzilla to 5.0

2015-04-28 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64968

--- Comment #20 from Andreas Schwab sch...@linux-m68k.org ---
I don't think this has anything to do with the timezone of the commenter.  For
example the mail for comment #19 has the date Tue, 28 Apr 2015 16:28:19 +
(which is correct), but comment #18 was sent with the date Tue, 28 Apr 2015
10:44:58 + (which is 5:30(!) hours off).  Both mails were sent immediately
after the comment was entered, and I assume that both were entered from the
same local timezone.


[Bug libquadmath/65757] gfortran gives incorrect result for anint with real*16 argument

2015-04-28 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65757

--- Comment #9 from joseph at codesourcery dot com joseph at codesourcery dot 
com ---
Fixed in glibc (commit 7d0b2575416aec2717e8665287d0ab77826a0ade).  I'd 
advise merging to trunk GCC libquadmath all relevant glibc changes since 
the last merges in 2012, rather than cherry-picking just this fix 
(although if you wish to fix things on release branches, cherry-picking 
just the critical fixes would be appropriate there).


[Bug c++/65919] New: Regression - GCC 5.1 with options -g -std=c++14 fails to compile multiple lambdas used as default function parameters

2015-04-28 Thread drew.dormann at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65919

Bug ID: 65919
   Summary: Regression - GCC 5.1 with options -g -std=c++14
fails to compile multiple lambdas used as default
function parameters
   Product: gcc
   Version: 5.1.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: drew.dormann at gmail dot com
  Target Milestone: ---

The following program compiles with GCC 4.9, but will not compile using GCC 5.1

Command:

g++ -std=c++14 -g TEST.cpp

Source:

#include functional

struct TestClass
{
static void do_things( std::functionvoid() first = []{},
   std::functionvoid() second = []{} );
};

int main()
{
TestClass::do_things();
}

Output:

TEST.cpp:12:1: error: ‘static void
std::_Function_base::_Base_manager_Functor::_M_init_functor(std::_Any_data,
_Functor, std::false_type) [with _Functor = TestClass::lambda();
std::false_type = std::integral_constantbool, false]’ conflicts with a
previous declaration
 }
 ^
In file included from TEST.cpp:1:0:
/usr/include/c++/5/functional:1786:2: note: previous declaration ‘static void
std::_Function_base::_Base_manager_Functor::_M_init_functor(std::_Any_data,
_Functor, std::false_type) [with _Functor = TestClass::lambda();
std::false_type = std::integral_constantbool, false]’
  _M_init_functor(_Any_data __functor, _Functor __f, false_type)
  ^
/usr/include/c++/5/functional:1786:2: note: a later -fabi-version= (or =0)
avoids this error with a change in mangling
TEST.cpp:12:1: error: ‘static void
std::_Function_base::_Base_manager_Functor::_M_destroy(std::_Any_data,
std::false_type) [with _Functor = TestClass::lambda(); std::false_type =
std::integral_constantbool, false]’ conflicts with a previous declaration
 }
 ^
In file included from TEST.cpp:1:0:
/usr/include/c++/5/functional:1724:2: note: previous declaration ‘static void
std::_Function_base::_Base_manager_Functor::_M_destroy(std::_Any_data,
std::false_type) [with _Functor = TestClass::lambda(); std::false_type =
std::integral_constantbool, false]’
  _M_destroy(_Any_data __victim, false_type)
  ^
/usr/include/c++/5/functional:1724:2: note: a later -fabi-version= (or =0)
avoids this error with a change in mangling
TEST.cpp:12:1: error: ‘static void
std::_Function_base::_Base_manager_Functor::_M_clone(std::_Any_data, const
std::_Any_data, std::false_type) [with _Functor = TestClass::lambda();
std::false_type = std::integral_constantbool, false]’ conflicts with a
previous declaration
 }
 ^
In file included from TEST.cpp:1:0:
/usr/include/c++/5/functional:1708:2: note: previous declaration ‘static void
std::_Function_base::_Base_manager_Functor::_M_clone(std::_Any_data, const
std::_Any_data, std::false_type) [with _Functor = TestClass::lambda();
std::false_type = std::integral_constantbool, false]’
  _M_clone(_Any_data __dest, const _Any_data __source, false_type)
  ^
/usr/include/c++/5/functional:1708:2: note: a later -fabi-version= (or =0)
avoids this error with a change in mangling

Version:

g++ -v
Using built-in specs.
COLLECT_GCC=g++-5
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
5.1.0-0ubuntu11~14.04.1' --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=c++98 --enable-gnu-unique-object
--disable-vtable-verify --enable-libmpx --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-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686
--with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.1.0 (Ubuntu 5.1.0-0ubuntu11~14.04.1) 

Observations:

The code will compile if any one of the following changes are made.

- Use g++-4.9
- Compile without the -g option
- Remove either parameter from do_things prototype
- Make do_things prototype a global function instead of a static member
funtion.
- Change the default parameters from a do nothing lambda to a do nothing
function name.

[Bug bootstrap/65910] r222473 breaks x86_64 darwin bootstrap

2015-04-28 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65910

--- Comment #5 from David Edelsohn dje at gcc dot gnu.org ---
Author: dje
Date: Tue Apr 28 17:16:19 2015
New Revision: 222535

URL: https://gcc.gnu.org/viewcvs?rev=222535root=gccview=rev
Log:
2015-04-28  Dominique d'Humieres  domi...@lps.ens.fr

PR bootstrap/65910
* varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/varasm.c


[Bug libstdc++/65704] Provide portable versions of std::timed_mutex and std::recursive_timed_mutex

2015-04-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65704

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
Making this work requires splitting mutex into smaller pieces so that
std::timed_mutex can depend on std::condition_variable, which depends on
std::mutex.

I'll come back to it.


[Bug target/65837] [arm-linux-gnueabihf] lto1 target specific builtin not available

2015-04-28 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65837

--- Comment #16 from clyon at gcc dot gnu.org ---
(In reply to prathamesh3492 from comment #15)

 I am not understanding why vfpv3-d16 appears in collect_gcc_options in
 run_gcc().
Isn't this because you configured GCC --with-fpu=vfpv3-d16?


[Bug target/55522] -funsafe-math-optimizations is unexpectedly harmful, especially w/ -shared

2015-04-28 Thread orion at cora dot nwra.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55522

Orion Poplawski orion at cora dot nwra.com changed:

   What|Removed |Added

 CC||orion at cora dot nwra.com

--- Comment #4 from Orion Poplawski orion at cora dot nwra.com ---
A recent issue triggered by this:
https://bugzilla.redhat.com/show_bug.cgi?id=1127544


[Bug libgcc/65902] GCC-5.1 fails to bootstrap for eCos/arm-eabi

2015-04-28 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65902

--- Comment #5 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
Well, I thought maybe it would not hurt to be more permissive...

At least math.h and stdlib.h include cyg/infra/cyg_type.h
which contains something like this:

#ifndef __cplusplus

typedef cyg_halbool bool;

# ifndef false
#  define false 0
# endif

# ifndef true
#  define true (!false)
# endif

#endif


[Bug web/64968] Upgrade GCC Bugzilla to 5.0

2015-04-28 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64968

--- Comment #22 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
(In reply to Frédéric Buclin from comment #21)
 Markus, did you change your timezone preference between comments 18 and 19?
 If yes, which ones did you select?

No. But the question makes no sense, because we're talking about mails that
bugzilla automatically sends to the bug mailing lists on every new comment.
And I have no control over these.

[Bug web/64968] Upgrade GCC Bugzilla to 5.0

2015-04-28 Thread LpSolit at netscape dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64968

--- Comment #23 from Frédéric Buclin LpSolit at netscape dot net ---
(In reply to Markus Trippelsdorf from comment #22)
 No. But the question makes no sense, because we're talking about mails that
 bugzilla automatically sends to the bug mailing lists on every new comment.
 And I have no control over these.

The question makes total sense as I wanted to excluse a possible interaction
between your timezone and the timezone used by Bugzilla to send bugmails. :)

[Bug web/64968] Upgrade GCC Bugzilla to 5.0

2015-04-28 Thread LpSolit at netscape dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64968

--- Comment #21 from Frédéric Buclin LpSolit at netscape dot net ---
Markus, did you change your timezone preference between comments 18 and 19? If
yes, which ones did you select?

[Bug web/64968] Upgrade GCC Bugzilla to 5.0

2015-04-28 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64968

--- Comment #24 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
(In reply to Frédéric Buclin from comment #23)
 (In reply to Markus Trippelsdorf from comment #22)
  No. But the question makes no sense, because we're talking about mails that
  bugzilla automatically sends to the bug mailing lists on every new comment.
  And I have no control over these.
 
 The question makes total sense as I wanted to excluse a possible interaction
 between your timezone and the timezone used by Bugzilla to send bugmails. :)

Yeah, sorry. I though you were talking about the Sourceware binutils thread...

Here are the headers of comment18 as seen by Gmane:

Path: news.gmane.org!not-for-mail   
From: trippels at gcc dot gnu.org gcc-bugzi...@gcc.gnu.org  
Newsgroups: gmane.comp.gcc.bugs 
Subject: [Bug web/6496Here are the headers from comment 18 as seem by gmane:
8] Upgrade GCC Bugzilla to 5.0  
Date: Tue, 28 Apr 2015 10:44:58 +   
Lines: 8
Approved: n...@gmane.org
Message-ID: bug-64968-4-ldazd6q...@http.gcc.gnu.org/bugzilla/ 
References: bug-6496...@http.gcc.gnu.org/bugzilla/
NNTP-Posting-Host: plane.gmane.org  
Mime-Version: 1.0   
Content-Type: text/plain; charset=UTF-8   
Content-Transfer-Encoding: 7bit 
X-Trace: ger.gmane.org 1430237721 11722 80.91.229.3 (28 Apr 2015 16:15:21 GMT)  
X-Complaints-To: use...@ger.gmane.org   
NNTP-Posting-Date: Tue, 28 Apr 2015 16:15:21 + (UTC)
To: gcc-bugs@gcc.gnu.org
Original-X-From: gcc-bugs-return-484874-gcgb-bugs-2=m.gmane@gcc.gnu.org Tue 
Apr 28 18:15:06 2015
Return-path: gcc-bugs-return-484874-gcgb-bugs-2=m.gmane@gcc.gnu.org   
Envelope-to: gcgb-bug...@plane.gmane.org
Original-Received: from server1.sourceware.org ([209.132.180.131]   
helo=sourceware.org)
by plane.gmane.org with esmtp (Exim 4.69)   
(envelope-from  
gcc-bugs-return-484874-gcgb-bugs-2=m.gmane@gcc.gnu.org)   
id 1Yn8A5-7b-65 
for gcgb-bug...@plane.gmane.org; Tue, 28 Apr 2015 18:15:05 +0200
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id  
:list-unsubscribe:list-archive:list-post:list-help:sender:from  
:to:subject:date:message-id:in-reply-to:references:content-type 
:content-transfer-encoding:mime-version; q=dns; s=default; b=eu7
6Jpj++BEoByfYK1WkSgKWYsgqRvq1b0M/KeNitV7ycQgl4ohrGf06aE1Y/832wKH
y/NHq6WvFLytj6vGFKekJhnAeux6xZObH0Enc4lmiW47TFMB7WFG/bhBbk40mNFH
jz4WVwxa05bFqSFaPPVrl7Ym8EqWwrBYwxOOEPzM=   
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id
:list-unsubscribe:list-archive:list-post:list-help:sender:from  
:to:subject:date:message-id:in-reply-to:references:content-type 
:content-transfer-encoding:mime-version; s=default; bh=zsFudk2X+
ANEPRr/cJWaH3SAEF8=; b=jastBc1aGdhM4s2RoZnruY7ZX/FcmBeRB0JEflRMT
68TkmxuDrRvnETjdLSGVZ28Kf18TbSc4ZdK4AYzsQFM5GBTHoRDeehXarAzcwHLq
S1VHzdFA3sOjoz89NpDigZ2MYsn0aX3cj9Y4e783mPOPSRRSqsac1nV1hx7khXPE
4A= 
Original-Received: (qmail 122022 invoked by alias); 28 Apr 2015 16:15:03 -  
Mailing-List: contact gcc-bugs-h...@gcc.gnu.org; run by ezmlm   
Precedence: bulk
List-Id: gcc-bugs.gcc.gnu.org 
List-Unsubscribe:   
mailto:gcc-bugs-unsubscribe-gcgb-bugs-2=m.gmane@gcc.gnu.org   
List-Archive: http://gcc.gnu.org/ml/gcc-bugs/ 
List-Post: mailto:gcc-bugs@gcc.gnu.org
List-Help: mailto:gcc-bugs-h...@gcc.gnu.org   
Original-Sender: 

[Bug c++/65882] [5/6 Regression] Internal compiler error: Error reporting routines re-entered

2015-04-28 Thread maltsevm at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65882

Mikhail Maltsev maltsevm at gmail dot com changed:

   What|Removed |Added

 CC||maltsevm at gmail dot com

--- Comment #4 from Mikhail Maltsev maltsevm at gmail dot com ---
For the record. Proposed patch (also contains slightly more reduced testcase):
https://gcc.gnu.org/ml/gcc-patches/2015-04/msg01558.html


  1   2   >