[Bug target/60653] [4.9 Regression] gfortran: ICE (segmentation fault) in lra

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60653

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org ---
I'll close this as a dup.  If we want the testcase, we can add it afterwards.

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


[Bug target/60697] [aarch64] LRA ICE (Segfault) while building 435.gromacs

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60697

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||doko at gcc dot gnu.org

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
*** Bug 60653 has been marked as a duplicate of this bug. ***


[Bug ada/60411] ADA bootstrap failure on ARM

2014-04-09 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60411

--- Comment #13 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
Author: ebotcazou
Date: Wed Apr  9 07:57:48 2014
New Revision: 209237

URL: http://gcc.gnu.org/viewcvs?rev=209237root=gccview=rev
Log:
PR ada/60411
* s-osinte-android.ads: Adjust.

Modified:
trunk/gcc/ada/s-osinte-android.ads


[Bug ada/60411] ADA bootstrap failure on ARM

2014-04-09 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60411

--- Comment #14 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
Sorry about the mess, can you try after the latest change?


[Bug ada/60411] Ada bootstrap failure on ARM

2014-04-09 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60411

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0
Summary|ADA bootstrap failure on|Ada bootstrap failure on
   |ARM |ARM


[Bug fortran/60780] Equivalence statements in nested modules results in fast growing duplicate statements in module files

2014-04-09 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60780

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-04-09
 Ever confirmed|0   |1

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 May be related to pr 38171.

Rather related to pr40958 comment 13.


[Bug fortran/40958] module files too large

2014-04-09 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40958

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

   What|Removed |Added

 Status|WAITING |NEW

--- Comment #17 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 However, the fundamental(?) issue of module sizes growing exponentially with
 deep module hierarchies still remains. The solution to that is to not
 include transitive dependencies, which in turn would require a module cache
 for good performance. Whether that is worth doing, and who is willing and
 able to do it, is unclear.

See pr60780 for an example.


[Bug fortran/60781] cannot match namelist object name

2014-04-09 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60781

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

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2014-04-09
 Ever confirmed|0   |1

--- Comment #10 from Dominique d'Humieres dominiq at lps dot ens.fr ---
I think this PR should be closed as INVALID.


[Bug fortran/50535] transformational intrinsic functions not allowed in statement functions

2014-04-09 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50535

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-04-09
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Still present at r209236.


[Bug fortran/60777] Fortran 2003: RECURSIVE function rejected in specification expression

2014-04-09 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60777

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-04-09
 Ever confirmed|0   |1

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Confirmed.


[Bug lto/60567] [4.9 Regression] lto1 ICE in add_symbol_to_partition, at lto/lto-partition.c:233 with -fno-use-linker-plugin

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60567

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org ---
I've bisected it (with hacked ld wrapper script that reported a 2010-ish GNU ld
in --version) down to r207489.
As Honza's 2014-02-04 change looked just like an optimization, I wonder whether
we couldn't perhaps just conditionalize those changes (the ipa.c and/or the
lto-partition.c change) on whether linker plugin is used or not (at least
temporarily for 4.9).  Honza, ping, all the other 3 pending P1s have patches
floating around or in the works, it would be nice to get rc1 out this week.


[Bug fortran/60774] f951: internal compiler error: Segmentation fault: 11

2014-04-09 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60774

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

   What|Removed |Added

   Keywords||ice-on-invalid-code

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Reduced test giving an ICE with a clean trunk (r209224)

program energy  
  implicit none ! all dble  
  integer(kind=4)::ns  ! size of spatial lattice
  integer(kind=4)::nt  ! size of temporal lattice; nt = ns
  integer(kind=4)::i,j,k,l!,iu,id,ju,jd,ku,kd,lu,ld
  integer(kind=4),allocatable::back(:,:) ! works up to 20,10
  integer(kind=4)::di
  doubleprecision,allocatable::sumffi(:)
  doubleprecision,allocatable::f(:,:,:,:) ! the dimensionless field
  ! potential energy; first something I did in an earlier paper
  nt = 10
  ns = 2
  allocate( f(nt,ns,ns,ns), back(ns,0:10) )
  allocate( sumffi(0:nt/2))
  go to 123
  do di = 0, ns/2 
 sumffi(di) = sumffi(di) + f(i,j,k,l)*f(back(i,di),j,k,l)
  end do
123 
contains
  function T(i,j,k,l,iu,ju,ku,lu,id,jd,kd,ld) ! only what depends on ijkl
doubleprecision::T
integer(kind=4)::i,j,k,l,iu,id,ju,jd,ku,kd,lu,ld
T = f(i,j,k,l)*( f(i,j,k,l) - f(iu,j,k,l) - f(id,j,k,l) )
  end function T
end program energy

The backtrace is

  * frame #0: 0x7fff91e76866 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x7fff989c935c libsystem_pthread.dylib`pthread_kill + 92
frame #2: 0x7fff98740b1a libsystem_c.dylib`abort + 125
frame #3: 0x000100bd7978 f951`linemap_lookup(set=0x000141d49000,
line=unavailable) + 456 at line-map.c:709
frame #4: 0x000100bd79dc
f951`linemap_macro_loc_to_exp_point(set=0x000141d49000, location=33570,
original_map=0x7fff5fbfedf8) + 76 at line-map.c:1181
frame #5: 0x000100bbf59e f951`expand_location_1(loc=33570,
expansion_point_p=unavailable) + 126 at input.c:164
frame #6: 0x000100bc039e f951`expand_location(loc=unavailable) + 14
at input.c:724
frame #7: 0x00010002e188 f951`show_locus(c1=-1350314028, c2=-1,
loc=unavailable) + 88 at error.c:355
frame #8: 0x00010002ed3e f951`error_print(type=0x000100cd1751,
format0=0x000100ce34a8, argp=unavailable) + 2286 at error.c:476
frame #9: 0x00010002f90e f951`gfc_error(gmsgid=unavailable) + 446 at
error.c:1003
frame #10: 0x00010008e4c9 f951`resolve_code(code=0x000141f08e40,
ns=0x000143023c00) + 9241 at resolve.c:9828
frame #11: 0x00010008f8a4 f951`resolve_codes(ns=unavailable) + 308 at
resolve.c:14610
frame #12: 0x00010008f99d f951`gfc_resolve(ns=0x000143023c00) + 61
at resolve.c:14638
frame #13: 0x000100079fab f951`gfc_parse_file() [inlined]
resolve_all_program_units(gfc_global_ns_list=0x000143023c00) + 71 at
parse.c:4468
frame #14: 0x000100079f64 f951`gfc_parse_file() + 1364
frame #15: 0x0001000bc276 f951`gfc_be_parse_file + 38 at f95-lang.c:188
frame #16: 0x00010086a287 f951`compile_file + 39 at toplev.c:548
frame #17: 0x00010086c7a4 f951`toplev_main(argc=2,
argv=0x7fff5fbff4a0) + 3284 at toplev.c:1914


[Bug fortran/60781] cannot match namelist object name

2014-04-09 Thread lauraelcomeau at yahoo dot co.uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60781

--- Comment #11 from Laura C lauraelcomeau at yahoo dot co.uk ---
Thank you very much for your help - I will fix the curly quotes and hopefully
run the executable successfully when I get home from work later.
Apologies that it was my mistake.
Your help is much appreciated! 

Laura


[Bug target/60732] FAIL: g++.dg/ext/altivec-7.C -std=* scan-assembler _Z3fooDv*

2014-04-09 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60732

--- Comment #5 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 Mike, what do you think is the best solution here?  We could use Dominique's
 patch with a comment to the effect that New-ABI symbols are always emitted
 on Linux, but only with -fabi-version=4 or later on Darwin.  We could revert
 my change and hardcode -fabi-version=2 for all targets.  Or we could take the
 suggestion from your original review email and duplicate the test into new-ABI
 and old-ABI versions, and do both of those.

I am in favor of the duplicated test.

 (If we duplicate the test, is altivec-7a.C a reasonable name for the
 duplicate-with-different-ABI, or does it need to be altivec-18.C or whatever
 the next available number is?)

I prefer altivec-7a.C.

It would be nice to have this done for 4.9.0.


[Bug c/60791] New: missing warning about uninitialized local variable

2014-04-09 Thread dominik.muth at gmx dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60791

Bug ID: 60791
   Summary: missing warning about uninitialized local variable
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dominik.muth at gmx dot de

// When compiling this file with
//
// -O3 -Wall -c
//
// There is no warning about the uninitialized use of r.

int f(int i) {
int r;
while (r != 0) {
r = 0;
i++;
}
return i;
}

// This is true for 4.6.3 and 4.8.2. However 2.95.2 does issue the warning.
//
// Leaving out optimization none of the above mentioned versions produces the
// warning (similar to 54554).


[Bug ada/60411] Ada bootstrap failure on ARM

2014-04-09 Thread gnugcc at marino dot st
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60411

--- Comment #15 from John Marino gnugcc at marino dot st ---
Hi Eric,
The compiler builds happily now.
It started right into ACATS testing and has passed the first 3 chapters
flawlessly (with the current setup ACATS takes hours because each test is
SCP'd/SSH'd to the device, but I'm going to improve the remote testing soon).

Thanks,
John


[Bug target/60459] Crash seen in _Unwind_VRS_Pop() for ARM platform

2014-04-09 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60459

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |INVALID

--- Comment #6 from Ramana Radhakrishnan ramana at gcc dot gnu.org ---

 This particular __longjump.S is not available in toolchain 4.2.1. I searched
 for relevant code and couldnt find it. 

That appears to be in the glibc sources not in the GCC sources assuming that is
the problem. It does look suspicious but doesn't guarantee that to be the issue
unless you know longjmp is being called in the testcase you have. Work out if
the test case shown in the link fails identically to yours and work out if it
fails in the same manner with the same root cause. If so, that's your issue and
it is nothing to do with the compiler or libgcc's unwind routines.

Use git blame or any other revision control tools on the glibc sources that you
have to work out where that comes from and port the solution there not in the
gcc sources.

Despite repeated requests to produce a testcase that shows this on currently
maintained compilers that shows this to be a GCC problem, there have been none. 

Given this situation, I'm going to reject this issue as INVALID - if you have
an issue, either reopen the issue or create a new one with the exact
information we require.

regards
Ramana


[Bug c++/60792] New: bogus buffer overflow warning and abort on static flexible array member in a child object

2014-04-09 Thread abalint21 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60792

Bug ID: 60792
   Summary: bogus buffer overflow warning and abort on static
flexible array member in a child object
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: abalint21 at gmail dot com

g++ emits a bogus warning on the program below which then aborts at runtime.
The strange thing is that if I get the reference of the child object and then
get the address of the str field then everything is OK. It seems that g++
cannot handle the inner child object's str if it is accessed via
parent-child.str but it is ok when a reference is taken from the child and
then accessed via child.str.


$ cat main.cpp  g++ -D_FORTIFY_SOURCE=2 -O2 main.cpp  ./a.out 
#include cstdlib
#include cstring
#include iostream

struct Parent
{

struct Child
{
int a;
char b;
char str[0]; /// ASCIIZ
} child;
};

//#define DONT_CRASH

int main(int argc, char** argv)
{
char* buffer = new char[32768];

Parent* parent = (Parent*) buffer;

parent-child.a = 1;
parent-child.b = 'a';

#ifdef DONT_CRASH
Parent::Child child = parent-child;
char* childStr = child.str;
#else
char* childStr = parent-child.str;
#endif

std::cout  __USE_FORTIFY_LEVEL  std::endl;
std::cout  __bos(childStr)  std::endl;

size_t strLen = 4;
std::strncpy(childStr, test, strLen);
if (childStr[strLen] not_eq '\0')
{
childStr[strLen] = '\0';
}

return 0;
}

In file included from /usr/include/string.h:640:0,
 from /usr/include/c++/4.8.2/cstring:42,
 from main.cpp:2:
In function ‘char* strncpy(char*, const char*, size_t)’,
inlined from ‘int main(int, char**)’ at main.cpp:38:43:
/usr/include/bits/string3.h:120:71: warning: call to char*
__builtin___strncpy_chk(char*, const char*, long unsigned int, long unsigned
int) will always overflow destination buffer [enabled by default]
   return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
   ^
2
0
*** buffer overflow detected ***: ./a.out terminated
...
Aborted

[Bug ada/60730] 'Round of a fixed point type incorrectly truncates its operand instead of rounding it

2014-04-09 Thread gnugcc at marino dot st
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60730

John Marino gnugcc at marino dot st changed:

   What|Removed |Added

 CC||gnugcc at marino dot st

--- Comment #2 from John Marino gnugcc at marino dot st ---
what platform is this program being run on?
what is output of uname -a ?


[Bug c/60791] missing warning about uninitialized local variable

2014-04-09 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60791

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org ---
I think dupe then.

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


[Bug c/54554] Undetected use of uninitialized variable

2014-04-09 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54554

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 CC||dominik.muth at gmx dot de

--- Comment #7 from Marek Polacek mpolacek at gcc dot gnu.org ---
*** Bug 60791 has been marked as a duplicate of this bug. ***


[Bug c/54554] Undetected use of uninitialized variable

2014-04-09 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54554

--- Comment #8 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Dimitris Papavasiliou from comment #6)
 I don't mean to dictate the coding-style others should use of course but
 still it seems to me like a small price to pay for avoiding obscure
 stochastic bugs that can take hours of debugging to locate (especially given
 the fact that there's good reason to disable optimizations when debugging
 code).

It should be possible to run the pass that triggers -Wmaybe-uninitialized
warning without optimization, but it will be very noisy. You could explore the
option of keeping it disabled at -O0 unless the user requests it by an explicit
-Wmaybe-uninitialized. But you should run some tests to see how noisy/useful
that would be. My guess is that a lot more noisy than useful.

[Bug ada/60411] Ada bootstrap failure on ARM

2014-04-09 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60411

--- Comment #16 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
 The compiler builds happily now.

Great, thanks for the quick feedback.

 It started right into ACATS testing and has passed the first 3 chapters
 flawlessly (with the current setup ACATS takes hours because each test is
 SCP'd/SSH'd to the device, but I'm going to improve the remote testing soon).

Please post the definitive results here when you have them, TIA.


[Bug c++/60792] bogus buffer overflow warning and abort on flexible array member in a child object

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60792

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
Zero length array inside of another string is not a flexible array member, nor
anything close to that, and with -D_FORTIFY_SOURCE=2 is not even supposed to be
handled like flexible array member alternative.  Thus, I don't see why you
think this is a bug.  Simply don't do it, use -D_FORTIFY_SOURCE=1 instead, or
use e.g. memcpy instead of strncpy which is allowed even in -D_FORTIFY_SOURCE=2
mode (which is stricter than what C/C++ allows) to cross field boundaries.


[Bug testsuite/60773] [4.9 Regression] FAIL: gcc.dg/vect/pr60656.c -flto -ffat-lto-objects scan-tree-dump-times vect vectorized 1 loops 1

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60773

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Wed Apr  9 11:37:14 2014
New Revision: 209241

URL: http://gcc.gnu.org/viewcvs?rev=209241root=gccview=rev
Log:
2014-04-09  Cong Hou  co...@google.com

PR testsuite/60773
* doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
documentation.

* lib/target-supports.exp:
(check_effective_target_vect_widen_si_to_di_pattern): New.
* gcc.dg/vect/pr60656.c: Require vect_long effective target.
Use scan-tree-dump-times for vect_widen_mult_si_to_di_pattern
targets only.
(foo): Fix up formatting.
(main): Call check_vect.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/sourcebuild.texi
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/vect/pr60656.c
trunk/gcc/testsuite/lib/target-supports.exp


[Bug testsuite/60773] [4.9 Regression] FAIL: gcc.dg/vect/pr60656.c -flto -ffat-lto-objects scan-tree-dump-times vect vectorized 1 loops 1

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60773

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
I went ahead and committed the fix.


[Bug target/60459] Crash seen in _Unwind_VRS_Pop() for ARM platform

2014-04-09 Thread murali.marimekala at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60459

--- Comment #7 from Murali murali.marimekala at gmail dot com ---
Hi Ramana,

Thanks for your response and inputs.

We will try working out a testcase to reproduce this issue.

Murali


[Bug debug/60655] [4.9 Regression] ICE: output_operand: invalid expression as operand

2014-04-09 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60655

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

  Attachment #32564|0   |1
is obsolete||

--- Comment #14 from Ramana Radhakrishnan ramana at gcc dot gnu.org ---
Created attachment 32571
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32571action=edit
Reworked patch

Reworked patch currently testing.


[Bug tree-optimization/60656] [4.8/4.9 regression] x86 vectorization produces wrong code

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60656

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org ---
Fixed.


[Bug tree-optimization/60656] [4.8 regression] x86 vectorization produces wrong code

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60656

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---
Summary|[4.8/4.9 regression] x86|[4.8 regression] x86
   |vectorization produces  |vectorization produces
   |wrong code  |wrong code

--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org ---
Actually, still not fixed on the 4.8 branch, only on the trunk.


[Bug target/60609] [4.8 Regression] Error: value of 256 too large for field of 1 bytes at 68242

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60609

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org
  Known to work||4.9.0
Summary|[4.8/4.9 Regression] Error: |[4.8 Regression] Error:
   |value of 256 too large for  |value of 256 too large for
   |field of 1 bytes at 68242   |field of 1 bytes at 68242
  Known to fail|4.9.0   |

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org ---
Fixed on the trunk, but not on the 4.8 branch yet.


[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO

2014-04-09 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375

--- Comment #209 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
(In reply to Markus Trippelsdorf from comment #208)
 Both issues from Comment 201 were fixed by:
 http://gcc.gnu.org/ml/gcc-patches/2014-04/msg00338.html

No, only the first issue is fixed. The second one (LTO/PGO build)
still happens unfortunately.


[Bug tree-optimization/60505] [4.8 Regression] Warning caused by GCC vectorizer.

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60505

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.9.0
Summary|[4.8/4.9 Regression]|[4.8 Regression] Warning
   |Warning caused by GCC   |caused by GCC vectorizer.
   |vectorizer. |
  Known to fail||4.8.2

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Fixed on the trunk.


[Bug ada/60411] Ada bootstrap failure on ARM

2014-04-09 Thread gnugcc at marino dot st
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60411

--- Comment #17 from John Marino gnugcc at marino dot st ---
Hi Eric,
In the end, there were 6 failures.  It appears that the ARM unwinder isn't
quite right yet.  After 2314 passes, the six ACATS failures were:

C52103x
C52104x
C52104y
c74004a (hung)
cb1010c
cb1010d

John


[Bug debug/60655] [4.9 Regression] ICE: output_operand: invalid expression as operand

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60655

--- Comment #15 from Jakub Jelinek jakub at gcc dot gnu.org ---
Looks good to me, thanks.


[Bug ada/60411] Ada bootstrap failure on ARM

2014-04-09 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60411

--- Comment #18 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
 In the end, there were 6 failures.  It appears that the ARM unwinder isn't
 quite right yet.  After 2314 passes, the six ACATS failures were:
 
 C52103x
 C52104x
 C52104y
 c74004a (hung)
 cb1010c
 cb1010d

It's not the ARM unwinder, it's the stack checking, see:
  http://gcc.gnu.org/ml/gcc-patches/2013-06/msg01421.html


[Bug testsuite/60793] New: Add target *-*-dragonfly* to dg-options on 172 libstdc++ tests

2014-04-09 Thread gnugcc at marino dot st
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60793

Bug ID: 60793
   Summary: Add target *-*-dragonfly* to dg-options on 172
libstdc++ tests
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gnugcc at marino dot st

Created attachment 32572
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32572action=edit
List of 172 libstdc++ tests that should target *-*-dragonfly*

The attached file is a list of 172 libstdc++ tests that have dg-options target
of *-*-freebsd*.  They should also list *-*-dragonfly*

It should be a simply matter of substituting enmass *-*-freebsd* with
*-*-freebsd* *-*-dragonfly* using perl -pi -e or similar technique.

A giant patchset could be provided upon request if perl -pie isn't good
enough.


[Bug testsuite/60794] New: 25 libstdc++ tests are missing '{ dg-require-debug-mode }'

2014-04-09 Thread gnugcc at marino dot st
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60794

Bug ID: 60794
   Summary: 25 libstdc++ tests are missing '{
dg-require-debug-mode  }'
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gnugcc at marino dot st

Created attachment 32573
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32573action=edit
Patch to add debug-mode requirement to 25 libstdc++ tests

Twenty-five (25) libstdc++ tests require the debug-mode option but this is not
specified.  I've carried the attached patch for years, time to try to get it
properly into the gcc testsuite base.

The tests are:
23_containers/deque/debug/assign4_neg.cc
23_containers/deque/debug/construct4_neg.cc
23_containers/deque/debug/insert4_neg.cc
23_containers/list/debug/assign4_neg.cc
23_containers/list/debug/construct4_neg.cc
23_containers/list/debug/insert4_neg.cc
23_containers/map/debug/construct4_neg.cc
23_containers/map/debug/insert4_neg.cc
23_containers/multimap/debug/construct4_neg.cc
23_containers/multimap/debug/insert4_neg.cc
23_containers/multiset/debug/construct4_neg.cc
23_containers/multiset/debug/insert4_neg.cc
23_containers/set/debug/construct4_neg.cc
23_containers/set/debug/insert4_neg.cc
23_containers/unordered_map/debug/construct4_neg.cc
23_containers/unordered_map/debug/insert4_neg.cc
23_containers/unordered_multimap/debug/construct4_neg.cc
23_containers/unordered_multimap/debug/insert4_neg.cc
23_containers/unordered_multiset/debug/construct4_neg.cc
23_containers/unordered_multiset/debug/insert4_neg.cc
23_containers/unordered_set/debug/construct4_neg.cc
23_containers/unordered_set/debug/insert4_neg.cc
23_containers/vector/debug/assign4_neg.cc
23_containers/vector/debug/construct4_neg.cc
23_containers/vector/debug/insert4_neg.cc


[Bug ada/60411] Ada bootstrap failure on ARM

2014-04-09 Thread gnugcc at marino dot st
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60411

--- Comment #19 from John Marino gnugcc at marino dot st ---
ah sorry, I always seem to conclude wrongly that stack checking requires unwind
support.  I'm not sure why I always conflate those two things.

So this patch was proposed 9 months ago but never got committed?  Or was it
only partially committed?

Will stack-check support get added soon?
Thanks,
John


[Bug libgcc/60790] libatomic convenience library selects IFUNC implementation before obtaining cpu info.

2014-04-09 Thread ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60790

Ian Lance Taylor ian at airs dot com changed:

   What|Removed |Added

 Status|RESOLVED|NEW
   Last reconfirmed||2014-04-09
 CC||ian at airs dot com
 Resolution|INVALID |---
 Ever confirmed|0   |1

--- Comment #3 from Ian Lance Taylor ian at airs dot com ---
Andrew, you are closing this way too fast.  This same problem is going to arise 
whenever libatomic is statically linked.  The library assumes that global
constructors are run before IFUNC selectors, but that is not the case in a
static link.  IFUNC selectors are run first.


[Bug libgcc/60790] libatomic convenience library selects IFUNC implementation before obtaining cpu info.

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60790

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 ---
That is not guaranteed for shared libs either actually in some more complex
cases of shared library dependencies.


[Bug ada/60411] Ada bootstrap failure on ARM

2014-04-09 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60411

--- Comment #20 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
 ah sorry, I always seem to conclude wrongly that stack checking requires
 unwind support.  I'm not sure why I always conflate those two things.

Yes, it does, but it first needs to be fully functional.

 So this patch was proposed 9 months ago but never got committed?  Or was it
 only partially committed?

Never reviewed and therefore not installed, I'll resubmit it at some point.


[Bug c++/60792] bogus buffer overflow warning and abort on flexible array member in a child object

2014-04-09 Thread abalint21 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60792

Attila Balint abalint21 at gmail dot com changed:

   What|Removed |Added

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

--- Comment #2 from Attila Balint abalint21 at gmail dot com ---
(In reply to Jakub Jelinek from comment #1)
 Zero length array inside of another string is not a flexible array member,
 nor anything close to that, and with -D_FORTIFY_SOURCE=2 is not even
 supposed to be handled like flexible array member alternative.  Thus, I
 don't see why you think this is a bug.  Simply don't do it, use
 -D_FORTIFY_SOURCE=1 instead, or use e.g. memcpy instead of strncpy which is
 allowed even in -D_FORTIFY_SOURCE=2 mode (which is stricter than what C/C++
 allows) to cross field boundaries.

Clear. Thank you for the clarification. It is not a bug


[Bug ada/54040] [x32] Incorrect timeval and timespec

2014-04-09 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54040

--- Comment #6 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
Author: ebotcazou
Date: Wed Apr  9 14:54:29 2014
New Revision: 209244

URL: http://gcc.gnu.org/viewcvs?rev=209244root=gccview=rev
Log:
PR ada/54040
PR ada/59346
* s-osinte-x32.adb: New file.
* s-linux.ads (Time): New section.
* s-linux-alpha.ads (Time): Likewise.
* s-linux-android.ads (Time: Likewise.
* s-linux-hppa.ads (Time): Likewise.
* s-linux-mipsel.ads (Time): Likewise.
* s-linux-sparc.ads (Time): Likewise.
* s-linux-x32.ads (Time): Likewise.
* s-osprim-x32.ads (timespec): Adjust.
* s-osinte-linux.ads (Time): Define local subtypes for those defined
in System.Linux.
* s-taprop-linux.adb (Monotonic_Clock): Do not define timeval.
* s-osinte-hpux.ads (timespec): Revert POSIX breakage.
* s-osinte-kfreebsd-gnu.ads (timespec): Likewise.
* s-osinte-solaris-posix.ads (timespec): Likewise.
* s-osinte-posix.adb (To_Timespec): Likewise.
* gcc-interface/Makefile.in (x32/Linux): Use s-osinte-x32.adb.

Added:
trunk/gcc/ada/s-osinte-x32.adb
Modified:
trunk/gcc/ada/ChangeLog
trunk/gcc/ada/gcc-interface/Makefile.in
trunk/gcc/ada/s-linux-alpha.ads
trunk/gcc/ada/s-linux-android.ads
trunk/gcc/ada/s-linux-hppa.ads
trunk/gcc/ada/s-linux-mipsel.ads
trunk/gcc/ada/s-linux-sparc.ads
trunk/gcc/ada/s-linux-x32.ads
trunk/gcc/ada/s-linux.ads
trunk/gcc/ada/s-osinte-hpux.ads
trunk/gcc/ada/s-osinte-kfreebsd-gnu.ads
trunk/gcc/ada/s-osinte-linux.ads
trunk/gcc/ada/s-osinte-posix.adb
trunk/gcc/ada/s-osinte-solaris-posix.ads
trunk/gcc/ada/s-osprim-x32.adb
trunk/gcc/ada/s-taprop-linux.adb


[Bug ada/59346] [4.9 Regression] s-osinte.adb:107:35: expected type Interfaces.C.long

2014-04-09 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59346

--- Comment #4 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
Author: ebotcazou
Date: Wed Apr  9 14:54:29 2014
New Revision: 209244

URL: http://gcc.gnu.org/viewcvs?rev=209244root=gccview=rev
Log:
PR ada/54040
PR ada/59346
* s-osinte-x32.adb: New file.
* s-linux.ads (Time): New section.
* s-linux-alpha.ads (Time): Likewise.
* s-linux-android.ads (Time: Likewise.
* s-linux-hppa.ads (Time): Likewise.
* s-linux-mipsel.ads (Time): Likewise.
* s-linux-sparc.ads (Time): Likewise.
* s-linux-x32.ads (Time): Likewise.
* s-osprim-x32.ads (timespec): Adjust.
* s-osinte-linux.ads (Time): Define local subtypes for those defined
in System.Linux.
* s-taprop-linux.adb (Monotonic_Clock): Do not define timeval.
* s-osinte-hpux.ads (timespec): Revert POSIX breakage.
* s-osinte-kfreebsd-gnu.ads (timespec): Likewise.
* s-osinte-solaris-posix.ads (timespec): Likewise.
* s-osinte-posix.adb (To_Timespec): Likewise.
* gcc-interface/Makefile.in (x32/Linux): Use s-osinte-x32.adb.

Added:
trunk/gcc/ada/s-osinte-x32.adb
Modified:
trunk/gcc/ada/ChangeLog
trunk/gcc/ada/gcc-interface/Makefile.in
trunk/gcc/ada/s-linux-alpha.ads
trunk/gcc/ada/s-linux-android.ads
trunk/gcc/ada/s-linux-hppa.ads
trunk/gcc/ada/s-linux-mipsel.ads
trunk/gcc/ada/s-linux-sparc.ads
trunk/gcc/ada/s-linux-x32.ads
trunk/gcc/ada/s-linux.ads
trunk/gcc/ada/s-osinte-hpux.ads
trunk/gcc/ada/s-osinte-kfreebsd-gnu.ads
trunk/gcc/ada/s-osinte-linux.ads
trunk/gcc/ada/s-osinte-posix.adb
trunk/gcc/ada/s-osinte-solaris-posix.ads
trunk/gcc/ada/s-osprim-x32.adb
trunk/gcc/ada/s-taprop-linux.adb


[Bug fortran/60795] New: Wrong length when allocating character array

2014-04-09 Thread kergonath at me dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60795

Bug ID: 60795
   Summary: Wrong length when allocating character array
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kergonath at me dot com

In the following program:

program stringtest
  character(:), dimension(:), allocatable :: s

  allocate(character(1) :: s(10))
  write(*,*) size(s)
  write(*,*) len(s)
end program

the elements of the array s end up with the wrong length, the output is:
  10
   0

Tested with latest version available with macports:
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin13/4.9.0/lto-wrapper
Target: x86_64-apple-darwin13
Configured with:
/opt/local/var/macports/build/_opt_mports_dports_lang_gcc49/gcc49/work/gcc-4.9-20140406/configure
--prefix=/opt/local --build=x86_64-apple-darwin13
--enable-languages=c,c++,objc,obj-c++,fortran,java
--libdir=/opt/local/lib/gcc49 --includedir=/opt/local/include/gcc49
--infodir=/opt/local/share/info --mandir=/opt/local/share/man
--datarootdir=/opt/local/share/gcc-4.9 --with-local-prefix=/opt/local
--with-system-zlib --disable-nls --program-suffix=-mp-4.9
--with-gxx-include-dir=/opt/local/include/gcc49/c++/ --with-gmp=/opt/local
--with-mpfr=/opt/local --with-mpc=/opt/local --with-cloog=/opt/local
--enable-cloog-backend=isl --disable-cloog-version-check
--enable-stage1-checking --disable-multilib --enable-lto
--enable-libstdcxx-time --with-as=/opt/local/bin/as --with-ld=/opt/local/bin/ld
--with-ar=/opt/local/bin/ar --with-bugurl=https://trac.macports.org/newticket
--with-pkgversion='MacPorts gcc49 4.9-20140406_0'
Thread model: posix
gcc version 4.9.0 20140406 (experimental) (MacPorts gcc49 4.9-20140406_0)


[Bug testsuite/60794] 25 libstdc++ tests are missing '{ dg-require-debug-mode }'

2014-04-09 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60794

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
Why do you think they require debug mode?

Those tests are supposed to run in normal mode, that's why they explicitly use
debug/vector and __gnu_debug::vector (which is how to use the debug
containers in normal mode)


[Bug lto/60567] [4.9 Regression] lto1 ICE in add_symbol_to_partition, at lto/lto-partition.c:233 with -fno-use-linker-plugin

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60567

--- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org ---
--- gcc/symtab.c.jj2014-03-21 22:23:43.0 +0100
+++ gcc/symtab.c2014-04-09 17:37:40.709523997 +0200
@@ -1312,9 +1312,13 @@ symtab_get_symbol_partitioning_class (sy
   /* Linker discardable symbols are duplicated to every use unless they are
  keyed.
  Keyed symbols or those.  */
-  if (DECL_ONE_ONLY (node-decl)
+  if ((HAVE_LTO_PLUGIN
+(flag_use_linker_plugin
+   || (HAVE_LTO_PLUGIN == 2
+!global_options_set.x_flag_use_linker_plugin))
+   ? (DECL_ONE_ONLY (node-decl)  !node-forced_by_abi)
+   : DECL_COMDAT (node-decl))
!node-force_output
-   !node-forced_by_abi
!symtab_used_from_object_file_p (node))
 return SYMBOL_DUPLICATE;


seems to make the ICE go away with -fno-use-linker-plugin or when the linker
doesn't support the plugin at all, didn't have to change ipa.c similarly.
But why is this happening and why this helps needs analyzing.


[Bug libstdc++/60793] Add target *-*-dragonfly* to dg-options on 172 libstdc++ tests

2014-04-09 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60793

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

  Component|testsuite   |libstdc++

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
(Changing component to libstdc++ so it's on my radar)

Could we get some testresults posted to the gcc-testresults list? Preferably
both with and without this change.

I'd prefer not to add it to the target selector if we aren't getting fairly
regular test results, so we can see if the tests are actually passing.


[Bug libstdc++/60793] Add target *-*-dragonfly* to dg-options on 172 libstdc++ tests

2014-04-09 Thread gnugcc at marino dot st
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60793

--- Comment #2 from John Marino gnugcc at marino dot st ---
hmmm, that would imply that all the dragonfly patches that we've been carrying
for years (including ada patches) would need to go in first.

DragonFly does not, and has never, built out of the box.  It's not possible to
have an automated test robot until support is added.  I could have a before
-and- after run, but that's a one off comparison.

I've been carrying these patches since 4.6 (actually a lot more, this is only a
small subset).


[Bug lto/60567] [4.9 Regression] lto1 ICE in add_symbol_to_partition, at lto/lto-partition.c:233 with -fno-use-linker-plugin

2014-04-09 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60567

--- Comment #14 from Jan Hubicka hubicka at gcc dot gnu.org ---
OK, the problem is that one comdat group has two functions:
_ZNK19MutableIntegerValue18isValidNativeValueEi/0 (isValidNativeValue)
@0x76adfe18
  Type: function definition analyzed
  Visibility: forced_by_abi externally_visible public weak
comdat_group:_ZNK19MutableIntegerValue18isValidNativeValueEi one_only
section_name:.text._ZNK19MutableIntegerValue18isValidNativeValueEi virtual
  Same comdat group as: _ZThn8_NK19MutableIntegerValue18isValidNativeValueEi/2
  Address is taken.
  Aux: @0x1  References: 
  Referring: *.LTHUNK0/1 (alias)_ZTV19MutableIntegerValue/3 (addr)
  Read from file: t.o
  Availability: available
  First run: 0
  Function flags:
  Called by: 
  Calls: 

and 

_ZThn8_NK19MutableIntegerValue18isValidNativeValueEi/2
(_ZThn8_NK19MutableIntegerValue18isValidNativeValueEi) @0x76c64148
  Type: function definition analyzed
  Visibility: externally_visible public weak
comdat_group:_ZNK19MutableIntegerValue18isValidNativeValueEi one_only
section_name:.text._ZNK19MutableIntegerValue18isValidNativeValueEi virtual
artificial
  Same comdat group as: _ZNK19MutableIntegerValue18isValidNativeValueEi/0
  Address is taken.
  Aux: @0x1  References: 
  Referring: _ZTV19MutableIntegerValue/3 (addr)
  Read from file: t.o
  Availability: overwritable
  First run: 0
  Function flags:
  Thunk fixed offset -8 virtual value 0 has virtual offset 0)
  Called by: 
  Calls: *.LTHUNK0/1 (1.00 per call) 

Thunk doesn't have forced_by_abi. This makes the partitinoning code to deal
with the comdat in two ways - duplicating into every partion that use it as
well as keying it to one partition.

This looks to me as C++ FE bug: When function is forced (keyed), its thunk
should also be forced IMO. It doesn't seem to make sense to keep function but
optimize out the thunk as we would do now (even w/o LTO)


[Bug ipa/60761] [4.9 Regression] Names of all function clones in g++ are built-in, in both warnings and dumps

2014-04-09 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60761

--- Comment #10 from Martin Jambor jamborm at gcc dot gnu.org ---
Created attachment 32574
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32574action=edit
WIP patch displaying IPA-CP information aout clones

This is an untested and very much WIP patch that shows how we can
print additional information about clones, at least about those
created by IPA-CP.  Of course eventually it should not be in the
front-end.  It also retains more information in memory, although not
that much.

For the source below, it produces the following output:

mjambor@virgil:~/gcc/mine/tests/pr60761-clonenames$ ~/gcc/mine/inst/bin/g++ -O3
-S -Wall aa.C -fno-inline
aa.C: In function ‘void foo(int, A*) clone with 4 for s, 10 for data pointed
to by  a at offset 32’:
aa.C:19:20: warning: iteration 3u invokes undefined behavior
[-Waggressive-loop-optimizations] 
 z[i] = i + a-j;
^
aa.C:18:3: note: containing loop
   for (int i = 0; i  s; i++)
   ^
aa.C:19:8: warning: array subscript is above array bounds [-Warray-bounds]
 z[i] = i + a-j;


the source code is:

extern int sum;

void do_sum (char *p)
{
  for (int i = 0; i  2; i++)
sum += p[i];
}

struct A
{
  int i, j, k;
};

void
foo (int s, struct A *a)
{
  char z[3];
  for (int i = 0; i  s; i++)
z[i] = i + a-j;
  do_sum (z);
}

int
bar (int i)
{
  struct A a;
  a.j = 10;
  foo (4, a);
  return 0;
}

[Bug lto/60567] [4.9 Regression] lto1 ICE in add_symbol_to_partition, at lto/lto-partition.c:233 with -fno-use-linker-plugin

2014-04-09 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60567

Jan Hubicka hubicka at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jason at redhat dot com

--- Comment #15 from Jan Hubicka hubicka at gcc dot gnu.org ---
This patch fixes the ICE by copying forced_by_abi as part of cgraph fixup in
ipa visibility.  I would like Jason to comment on this. I think fix at C++ FE
side would be more appropriate if the thunk is indeed keyed.

If not, I will update partitinoning predicate to always iterate the whole group
and see if any of symbols is keyed.

Index: ipa.c
===
--- ipa.c   (revision 209170)
+++ ipa.c   (working copy)
@@ -1032,6 +1032,7 @@ function_and_variable_visibility (bool w
   == DECL_COMDAT_GROUP (decl_node-decl));
  gcc_checking_assert (node-same_comdat_group);
}
+ decl_node-forced_by_abi = node-forced_by_abi;
  if (DECL_EXTERNAL (decl_node-decl))
DECL_EXTERNAL (node-decl) = 1;
}


[Bug ipa/60761] [4.9 Regression] Names of all function clones in g++ are built-in, in both warnings and dumps

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60761

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org ---
Won't that break say -g -O2 -Wall reporting with say:
static inline void
foo (char *p)
{
  __builtin___memcpy_chk (p, abc, 3, __builtin_object_size (p, 0));
}

static inline void
bar (char *p)
{
  foo (p);
}

void
baz (void)
{
  char buf[2];
  bar (buf);
}

I mean, DECL_ABSTRACT_ORIGIN is set also for inlines, fnsplit created functions
and many other cases, printing clone after the function name in all those
cases might not be appropriate.


[Bug testsuite/60794] 25 libstdc++ tests are missing '{ dg-require-debug-mode }'

2014-04-09 Thread gnugcc at marino dot st
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60794

--- Comment #2 from John Marino gnugcc at marino dot st ---
Hmmm, only 3 of the 25 files use debug/vector and __gnu_debug::vector
  23_containers/vector/debug/assign4_neg.cc
  23_containers/vector/debug/construct4_neg.cc
  23_containers/vector/debug/insert4_neg.cc

That said, all 25 have some form of #include debug/X and __gnu_debug::X so
likely you were only applying an example for one subset.

I honestly can't remember the exact failure that this solved at the time (gcc
4.6 timeframe).  I want to say the first file I fixed back then was
deque/debug/assign4_neg.cc

It's possible that that I saw debug-mode used in the 1,2,3 versions and thought
it was oversight with the 4 versions, but I would have only looked at it upon a
failure.


All that said, if all 25 look right to you then I'll humbly accept it and a
closed/invalid bug status.


[Bug ipa/60761] [4.9 Regression] Names of all function clones in g++ are built-in, in both warnings and dumps

2014-04-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60761

--- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org ---
Also, perhaps to make the change conservative enough for 4.9, might be best to
not append anything now, and only look at DECL_ABSTRACT_ORIGIN (recurse on it)
if !DECL_LANG_SPECIFIC.  More verbose printing can be perhaps deferred for
stage1.


[Bug ipa/60761] [4.9 Regression] Names of all function clones in g++ are built-in, in both warnings and dumps

2014-04-09 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60761

--- Comment #13 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Jakub Jelinek from comment #11)
 I mean, DECL_ABSTRACT_ORIGIN is set also for inlines, fnsplit created
 functions and many other cases, printing clone after the function name in
 all those cases might not be appropriate.

It is not clear to me why you want to print clone at all. It is an internal
detail.

[Bug c++/60796] New: Default move constructor not generated by explicit template instantiaion (C++11)

2014-04-09 Thread brian.freyburger at blandertechnologies dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60796

Bug ID: 60796
   Summary: Default move constructor not generated by explicit
template instantiaion (C++11)
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: brian.freyburger at blandertechnologies dot com

When you use explicit template instantiation in separate compilation units, and
disable implicit instantiation, a move constructor and move assignment operator
defined as =default is not generated.

See example here:

A.H:

#include memory

template typename T
struct A
{
  A (T*a) : a(a) {}

  A(A) = default;
  A operator =(const A) = default;

  std::shared_ptrT a;
};

extern template class Aint;

A.C:

#include A.H

template class Aint;

main.C:

#include A.H

template class Aint;
int main()
{
  Aint a = new int(19);
  Aint b = std::move(a);
}


results:

g++ -std=c++11 A.C main.C
/tmp/ccvE1IqS.o: In function `main':
main.C:(.text+0xdc): undefined reference to `Aint::A(Aint)'
collect2: error: ld returned 1 exit status


[Bug middle-end/60469] simple cilk plus program ICEs

2014-04-09 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60469

--- Comment #3 from Andi Kleen andi-gcc at firstfloor dot org ---
I've tried a couple of things to fix this:

- Fill in DECL_CONTEXT to current_fn_decl in cilk
- Fill in DECL_CONTEXT for VAR_DECLs when creating the nested wrapper

No banana so far. The first causes other errors and the second still has the
same segfault


[Bug fortran/60795] [4.7/4.8/4.9 Regression] Wrong length when allocating character array

2014-04-09 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60795

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Known to work||4.6.0
   Keywords||wrong-code
   Last reconfirmed||2014-04-09
 CC||jb at gcc dot gnu.org
 Ever confirmed|0   |1
Summary|Wrong length when   |[4.7/4.8/4.9 Regression]
   |allocating character array  |Wrong length when
   ||allocating character array
  Known to fail||4.7.4, 4.8.3, 4.9.0

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Confirmed, up to revision r173749 I get

  10
   1

from r173750 to r174379 I get

  10
   2

and from r174433 up to r209236 I get

  10
   0

What is surprising is that r173750, r174030, and r174415 are related to
backtrace handling, so they probably only expose a latent problem(?).


[Bug lto/60567] [4.9 Regression] lto1 ICE in add_symbol_to_partition, at lto/lto-partition.c:233 with -fno-use-linker-plugin

2014-04-09 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60567

--- Comment #16 from Jason Merrill jason at gcc dot gnu.org ---
(In reply to Jan Hubicka from comment #14)
 It doesn't seem to make sense to keep function
 but optimize out the thunk as we would do now (even w/o LTO)

Right.  When we emit a function, we need to also emit any associated thunks.


[Bug ipa/60761] [4.9 Regression] Names of all function clones in g++ are built-in, in both warnings and dumps

2014-04-09 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60761

--- Comment #14 from Marc Glisse glisse at gcc dot gnu.org ---
(In reply to Manuel López-Ibáñez from comment #13)
 It is not clear to me why you want to print clone at all. It is an
 internal detail.

Imagine a function void f(unsigned a, unsigned b) where gcc makes a clone
specializing a=0. If the function contains a comparison a=b, you might get a
warning because the comparison is always true. As a user, I would be quite
confused...

Ok, this particular example won't happen, but I think it is still a reason why
writing clone and maybe some more details can be useful.

[Bug middle-end/60469] simple cilk plus program ICEs

2014-04-09 Thread izamyatin at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60469

--- Comment #4 from Igor Zamyatin izamyatin at gmail dot com ---
Following works for me and shows no new errors in regtesting. Not sure it is a
good idea though...

diff --git a/gcc/c/c-array-notation.c b/gcc/c/c-array-notation.c
index 6a5631c..d7c6772 100644
--- a/gcc/c/c-array-notation.c
+++ b/gcc/c/c-array-notation.c
@@ -284,6 +284,7 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree
*new_var)
 {
   an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
   integer_type_node);
+  DECL_CONTEXT (an_loop_info[ii].var) = current_function_decl;
   an_loop_info[ii].ind_init =
 build_modify_expr (location, an_loop_info[ii].var,
TREE_TYPE (an_loop_info[ii].var), NOP_EXPR,
@@ -783,6 +784,7 @@ build_array_notation_expr (location_t location, tree lhs,
tree lhs_origtype,
   {
 lhs_an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
integer_type_node);
+DECL_CONTEXT (lhs_an_loop_info[ii].var) = current_function_decl;
 lhs_an_loop_info[ii].ind_init = build_modify_expr
   (location, lhs_an_loop_info[ii].var,
TREE_TYPE (lhs_an_loop_info[ii].var), NOP_EXPR,
@@ -795,6 +797,7 @@ build_array_notation_expr (location_t location, tree lhs,
tree lhs_origtype,
  integer.  */
   rhs_an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
  integer_type_node);
+  DECL_CONTEXT (rhs_an_loop_info[ii].var) = current_function_decl;
   rhs_an_loop_info[ii].ind_init = build_modify_expr
 (location, rhs_an_loop_info[ii].var,
  TREE_TYPE (rhs_an_loop_info[ii].var), NOP_EXPR,
@@ -972,6 +975,7 @@ fix_conditional_array_notations_1 (tree stmt)
 {
   an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
  integer_type_node);
+  DECL_CONTEXT (an_loop_info[ii].var) = current_function_decl;
   an_loop_info[ii].ind_init =
 build_modify_expr (location, an_loop_info[ii].var,
TREE_TYPE (an_loop_info[ii].var), NOP_EXPR,
@@ -1069,6 +1073,7 @@ fix_array_notation_expr (location_t location, enum
tree_code code,
 {
   an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
  integer_type_node);
+  DECL_CONTEXT (an_loop_info[ii].var) = current_function_decl;
   an_loop_info[ii].ind_init =
 build_modify_expr (location, an_loop_info[ii].var,
TREE_TYPE (an_loop_info[ii].var), NOP_EXPR,
@@ -1165,6 +1170,7 @@ fix_array_notation_call_expr (tree arg)
 {
   an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE,
  integer_type_node);
+  DECL_CONTEXT (an_loop_info[ii].var) = current_function_decl;
   an_loop_info[ii].ind_init =
 build_modify_expr (location, an_loop_info[ii].var,
TREE_TYPE (an_loop_info[ii].var), NOP_EXPR, location,
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 7441784..b61a995 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -1732,6 +1732,7 @@ gimplify_var_or_parm_decl (tree *expr_p)
  be really nice if the front end wouldn't leak these at all.
  Currently the only known culprit is C++ destructors, as seen
  in g++.old-deja/g++.jason/binding.C.  */
+#if 0
   if (TREE_CODE (decl) == VAR_DECL
!DECL_SEEN_IN_BIND_EXPR_P (decl)
!TREE_STATIC (decl)  !DECL_EXTERNAL (decl)
@@ -1740,6 +1741,7 @@ gimplify_var_or_parm_decl (tree *expr_p)
   gcc_assert (seen_error ());
   return GS_ERROR;
 }
+#endif

   /* When within an OpenMP context, notice uses of variables.  */
   if (gimplify_omp_ctxp  omp_notice_variable (gimplify_omp_ctxp, decl,
true))


[Bug middle-end/60469] simple cilk plus program ICEs

2014-04-09 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60469

--- Comment #5 from Andi Kleen andi-gcc at firstfloor dot org ---
You're right. It works in C++.

That's similar to my earlier patch, but I didn't comment out the other check
like you did. If commenting out the check work it would seem right to me.

Can you post it as a RFC?


[Bug testsuite/60773] [4.9 Regression] FAIL: gcc.dg/vect/pr60656.c -flto -ffat-lto-objects scan-tree-dump-times vect vectorized 1 loops 1

2014-04-09 Thread congh at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60773

--- Comment #5 from Cong Hou congh at google dot com ---
Hi Jakub

Thank you very much for the commit!


thanks,
Cong


On Wed, Apr 9, 2014 at 4:39 AM, jakub at gcc dot gnu.org
gcc-bugzi...@gcc.gnu.org wrote:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60773

 Jakub Jelinek jakub at gcc dot gnu.org changed:

What|Removed |Added
 
  Status|UNCONFIRMED |RESOLVED
  CC||jakub at gcc dot gnu.org
  Resolution|--- |FIXED

 --- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
 I went ahead and committed the fix.

 --
 You are receiving this mail because:
 You are on the CC list for the bug.


[Bug c++/57926] Atomic functions broken with C++ but not C?

2014-04-09 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57926

--- Comment #13 from Jason Merrill jason at gcc dot gnu.org ---
Created attachment 32575
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32575action=edit
patch

This patch forces the decay for C++.  We don't need to do anything for C, since
arrays decay immediately when named in the C front end.  I think I'm inclined
to wait until after 4.9 to check this in.


[Bug middle-end/60469] simple cilk plus program ICEs

2014-04-09 Thread izamyatin at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60469

--- Comment #6 from Igor Zamyatin izamyatin at gmail dot com ---
Yes, I was going to post it after complete testing


[Bug c++/60796] Default move constructor not generated by explicit template instantiaion (C++11)

2014-04-09 Thread brian.freyburger at blandertechnologies dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60796

--- Comment #1 from Brian Freyburger brian.freyburger at blandertechnologies 
dot com ---
Sorry, see code change below.  (if you explicitly instantiate in the
compilation unit which uses the move construction, the compilation sucec

(In reply to Brian Freyburger from comment #0)
 When you use explicit template instantiation in separate compilation units,
 and disable implicit instantiation, a move constructor and move assignment
 operator defined as =default is not generated.
 
 See example here:
 
 A.H:
 
 #include memory
 
 template typename T
 struct A
 {
   A (T*a) : a(a) {}
  
   A(A) = default;
   A operator =(const A) = default;
 
   std::shared_ptrT a;
 };
 
 extern template class Aint;
 
 A.C:
 
 #include A.H
 
 template class Aint;
 
 main.C:
 
 #include A.H

 // template class Aint;  REMOVE THIS LINE
 int main()
 {
   Aint a = new int(19);
   Aint b = std::move(a);
 }
 
 
 results:
 
 g++ -std=c++11 A.C main.C
 /tmp/ccvE1IqS.o: In function `main':
 main.C:(.text+0xdc): undefined reference to `Aint::A(Aint)'
 collect2: error: ld returned 1 exit status


[Bug fortran/60795] [4.7/4.8/4.9 Regression] Wrong length when allocating character array

2014-04-09 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60795

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org

--- Comment #2 from kargl at gcc dot gnu.org ---
(In reply to Dominique d'Humieres from comment #1)

 What is surprising is that r173750, r174030, and r174415 are related to
 backtrace handling, so they probably only expose a latent problem(?).


I think it is a lot worse than it appears.

call s1
call s2
call s3
end

subroutine s1
  character(:), dimension(:), allocatable :: s
  allocate(character(10) :: s(2))
  s(1) = 'r'
  s(2) = 's'
  print *, 's1: ', size(s), len(s)
end subroutine s1
!
! A variation on a theme?
!
subroutine s2
!  This causes an ICE in gfortran
!  character(:), dimension(:), allocatable :: s
!  allocate(s(2), source='abc')
!  s(1) = 'r'
!  s(2) = 's'
!  print *, 's2:', size(s), len(s)
end subroutine s2
!
! A variation on a theme?
!
subroutine s3
!  This causes an ICE in gfortran
!  character(:), dimension(:), allocatable :: s
!  allocate(s(2), source=['abc','def'])
!  allocate(s, source=['abc','def'])
!  s(1) = 'r'
!  s(2) = 's'
!  print *, 's3:', size(s), len(s)
end subroutine s3

subroutine y3
!  This causes gfortran to issue an error.  Incorrect!
!  character(:), dimension(:), allocatable :: s
!  allocate(s, source=['abc','def'])
!  s(1) = 'r'
!  s(2) = 's'
!  print *, 's3:', size(s), len(s)
end subroutine y3

subroutine t3
!  This causes gfortran to issue an error. Incorrect!
!  real, dimension(:), allocatable :: s
!  allocate(s, source=[1., 2.])
end subroutine t3

subroutine s4
!  This causes an ICE in gfortran
!  character(3), dimension(:), allocatable :: s
!  allocate(s(2), source=['abc','def'])
!  s(1) = 'r'
!  s(2) = 's'
!  print *, 's3:', size(s), len(s)
end subroutine s4


[Bug libstdc++/60789] [4.9 Regression] Missing -lm while checking for math functions (e.g., atan2f)

2014-04-09 Thread david.abdurachmanov at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60789

--- Comment #1 from David Abdurachmanov david.abdurachmanov at gmail dot com 
---
Found the culprit. I had CFLAGS/CXXFLAGS/LDFLAGS for gcc ./configure. Thus
probably setting CFLAGS causes `-lm` to vanish in libstdc++v3 math conftests.


[Bug middle-end/60469] simple cilk plus program ICEs

2014-04-09 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60469

--- Comment #7 from H.J. Lu hjl.tools at gmail dot com ---
(In reply to Igor Zamyatin from comment #6)
 Yes, I was going to post it after complete testing

You should set DECL_SEEN_IN_BIND_EXPR_P when setting
DECL_CONTEXT, similar to gimple_add_tmp_var.


[Bug middle-end/60469] simple cilk plus program ICEs

2014-04-09 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60469

--- Comment #8 from H.J. Lu hjl.tools at gmail dot com ---
(In reply to H.J. Lu from comment #7)
 (In reply to Igor Zamyatin from comment #6)
  Yes, I was going to post it after complete testing
 
 You should set DECL_SEEN_IN_BIND_EXPR_P when setting
 DECL_CONTEXT, similar to gimple_add_tmp_var.

Or we can use create_tmp_var.


[Bug c/60797] New: gcc hangs with error: only weak aliases are supported in this configuration

2014-04-09 Thread junchao.zhang at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60797

Bug ID: 60797
   Summary: gcc hangs with error: only weak aliases are supported
in this configuration
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: junchao.zhang at gmail dot com

On my Mac OS X 10.9.2, when I use gcc to compile this program, test.c,

#include stdio.h

extern int foo __attribute__((alias(bar)));
int main()
{
return 0;
}

gcc hangs with countless 
test.c:3:12: error: only weak aliases are supported in this configuration
test.c:3:12: error: only weak aliases are supported in this configuration
test.c:3:12: error: only weak aliases are supported in this configuration
...


[Bug target/57589] Linux powerpc -mcpu=native returns pointer to variable on stack in driver-rs6000.c

2014-04-09 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57589

--- Comment #6 from Bill Schmidt wschmidt at gcc dot gnu.org ---
Author: wschmidt
Date: Wed Apr  9 19:42:14 2014
New Revision: 209250

URL: http://gcc.gnu.org/viewcvs?rev=209250root=gccview=rev
Log:
2014-04-09  Bill Schmidt  wschm...@linux.vnet.ibm.com

Backport from mainline r202642
2013-09-17  Alan Modra  amo...@gmail.com

PR target/57589
* config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
patch (r199972).


Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/config/rs6000/driver-rs6000.c


[Bug c/60797] gcc hangs with error: only weak aliases are supported in this configuration

2014-04-09 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60797

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-04-09
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr ---
r206658 gives

pr60797.c:3:12: error: only weak aliases are supported in this configuration
 extern int foo __attribute__((alias(bar)));
^
pr60797.c:3:12: error: only weak aliases are supported in this configuration

while r206880 gives the infinite errors.


[Bug c++/60798] New: Access checking of template alias not done at the point of use

2014-04-09 Thread eric.niebler at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60798

Bug ID: 60798
   Summary: Access checking of template alias not done at the
point of use
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: eric.niebler at gmail dot com

The following compiles with clang, but not with gcc-4.8.2


templatetypename Derived
using base_t = typename Derived::base_t;

templatetypename Derived
struct base
{
private:
  friend Derived;
  using base_t = base;
  base() {}
};

templatetypename T
struct derived : basederivedT
{
  using base_tderived::base_t;
};

int main()
{
  derivedint d;
}
/

Result:

test.cpp: In substitution of ‘templateclass Derived using base_t = typename
Derived::base_t [with Derived = derivedint]’:
test.cpp:16:26:   required from ‘struct derivedint’
test.cpp:21:16:   required from here
test.cpp:9:22: error: ‘using base_t = struct basederivedint ’ is private
   using base_t = base;
  ^
test.cpp:2:40: error: within this context
 using base_t = typename Derived::base_t;

[Bug c/60784] Spurious -Wmissing-field-initializers warning for anonymous structure

2014-04-09 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60784

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
It looks like this isn't about whether the struct is anonymous, we warn even on
say:
struct A { int a, b; };
struct B { struct A a; } b = { .a.a = 1, .a.b = 1 };

c.c:2:19: warning: missing initializer for field ‘b’ of ‘struct A’
[-Wmissing-field-initializers]
 struct B { struct A a; } b = { .a.a = 1, .a.b = 1 };
   ^
c.c:1:19: note: ‘b’ declared here
 struct A { int a, b; };
   ^

[Bug middle-end/60467] ICE with -fcilkplus

2014-04-09 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60467

--- Comment #1 from Andi Kleen andi-gcc at firstfloor dot org ---
We could add this patch to avoid the original problem:

diff --git a/gcc/c-family/cilk.c b/gcc/c-family/cilk.c
index f2179dfc..a535948 100644
--- a/gcc/c-family/cilk.c
+++ b/gcc/c-family/cilk.c
@@ -712,8 +712,9 @@ create_cilk_wrapper (tree exp, tree *args_out)
   else
 extract_free_variables (exp, wd, ADD_READ);
   pointer_map_traverse (wd.decl_map, declare_one_free_variable, wd);
-  wd.block = TREE_BLOCK (exp);
-  if (!wd.block)
+  if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (exp
+wd.block = TREE_BLOCK (exp);
+  else
 wd.block = DECL_INITIAL (current_function_decl);


However this just causes the next ICE later

#1  0x008a8e20 in gimplify_expr (expr_p=0x76d58bf8,
pre_p=0x7fffd5f8, post_p=0x7fffd130, 
gimple_test_f=0x8957a2 is_gimple_addressable(tree), fallback=3) at
../../gcc/gcc/gimplify.c:8359
8359  gcc_assert (fallback  fb_mayfail);
(gdb) p fallback
$1 = 3
(gdb) p/d fb_mayfail 
$2 = 4


[Bug c++/60799] New: access checking within injected friend functions does not happen in the context of the enclosing class

2014-04-09 Thread eric.niebler at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60799

Bug ID: 60799
   Summary: access checking within injected friend functions does
not happen in the context of the enclosing class
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: eric.niebler at gmail dot com

The following compiles with clang, but not with gcc-4.8.2

/
templatetypename T
struct foo;

templatetypename T
struct bar
{
private:
  templatetypename U
  friend struct foo;
  int x_;
public:
  bar() : x_(0) {}
};

templatetypename T
struct foo
{
private:
  int x_;
public:
  foo() : x_(0) {}
  friend bool operator==(fooT f, barT b)
  {
  return f.x_ == b.x_;
  }
};

int main()
{
  fooint f;
  barint b;
  bool i = (f == b);
}


Result:

test.cpp: In instantiation of ‘bool operator==(fooint, barint)’:
test.cpp:32:18:   required from here
test.cpp:10:7: error: ‘int barint::x_’ is private
   int x_;
   ^
test.cpp:24:19: error: within this context
   return f.x_ == b.x_;
   ^

[Bug middle-end/60467] ICE with -fcilkplus

2014-04-09 Thread izamyatin at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60467

Igor Zamyatin izamyatin at gmail dot com changed:

   What|Removed |Added

 CC||izamyatin at gmail dot com

--- Comment #2 from Igor Zamyatin izamyatin at gmail dot com ---
I've also looked at this.
I think this one should go

diff --git a/gcc/c-family/cilk.c b/gcc/c-family/cilk.c
index 6a7bf4f..bf549ad 100644
--- a/gcc/c-family/cilk.c
+++ b/gcc/c-family/cilk.c
@@ -99,7 +99,6 @@ cilk_set_spawn_marker (location_t loc, tree fcall)
it.  */
 return false; 
   else if (TREE_CODE (fcall) != CALL_EXPR
-   TREE_CODE (fcall) != FUNCTION_DECL
   /* In C++, TARGET_EXPR is generated when we have an overloaded
  '=' operator.  */
TREE_CODE (fcall) != TARGET_EXPR)


[Bug c++/60798] Access checking of template alias not done at the point of use

2014-04-09 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60798

Daniel Krügler daniel.kruegler at googlemail dot com changed:

   What|Removed |Added

 CC||daniel.kruegler@googlemail.
   ||com

--- Comment #1 from Daniel Krügler daniel.kruegler at googlemail dot com ---
Access checking within alias templates is handled by an existing core language
issue. At the moment I have no online access to the active issue list, but I
believe that was

http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1554

[Bug target/60800] New: -Ofast -ffast-math -march=corei7 -mtune=generic miscompiles 178.galgel in SPEC CPU 2K

2014-04-09 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60800

Bug ID: 60800
   Summary: -Ofast -ffast-math -march=corei7 -mtune=generic
miscompiles 178.galgel in SPEC CPU 2K
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hjl.tools at gmail dot com
CC: areg.melikadamyan at gmail dot com

On Linux/x86-64, revision 209068  miscompiles 178.galgel in SPEC CPU 2K
with

-Ofast -ffast-math -march=corei7 -mtune=generic

9639 segmentation fault  ./galgel_peak.tunegeneric 
../../data/ref/input/galgel.in


[Bug target/60800] -Ofast -ffast-math miscompiles 178.galgel in SPEC CPU 2K

2014-04-09 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60800

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

   What|Removed |Added

Summary|-Ofast -ffast-math  |-Ofast -ffast-math
   |-march=corei7   |miscompiles 178.galgel in
   |-mtune=generic miscompiles  |SPEC CPU 2K
   |178.galgel in SPEC CPU 2K   |

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com ---
Just -Ofast -ffast-math will miscompile 178.galgel.


[Bug libstdc++/60789] [4.9 Regression] Missing -lm while checking for math functions (e.g., atan2f)

2014-04-09 Thread david.abdurachmanov at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60789

David Abdurachmanov david.abdurachmanov at gmail dot com changed:

   What|Removed |Added

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

--- Comment #2 from David Abdurachmanov david.abdurachmanov at gmail dot com 
---
I am marking it as RESOLVED INVALID.

After looking more closely, I found a typo in CXXFLAGS. It caused the following
test to fail in the first place:

From libstdc++-v3/linkage.m4 in GLIBCXX_CHECK_MATH_SUPPORT:

361   dnl Check libm
362   AC_CHECK_LIB(m, sin, libm=-lm)
363   ac_save_LIBS=$LIBS
364   LIBS=$LIBS $libm

Thus `-lm` was not added for the rest of the tests.


[Bug ada/59346] [4.9 Regression] s-osinte.adb:107:35: expected type Interfaces.C.long

2014-04-09 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59346

--- Comment #5 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
Author: ebotcazou
Date: Wed Apr  9 23:18:28 2014
New Revision: 209257

URL: http://gcc.gnu.org/viewcvs?rev=209257root=gccview=rev
Log:
PR ada/54040
PR ada/59346
* s-osinte-x32.adb (To_Timespec): Add use directive.
* s-osprim-x32.ads (Clock): Adjust.
(To_Timespec): Likewise.

Modified:
trunk/gcc/ada/ChangeLog
trunk/gcc/ada/s-osinte-x32.adb
trunk/gcc/ada/s-osprim-x32.adb


[Bug ada/54040] [x32] Incorrect timeval and timespec

2014-04-09 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54040

--- Comment #7 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
Author: ebotcazou
Date: Wed Apr  9 23:18:28 2014
New Revision: 209257

URL: http://gcc.gnu.org/viewcvs?rev=209257root=gccview=rev
Log:
PR ada/54040
PR ada/59346
* s-osinte-x32.adb (To_Timespec): Add use directive.
* s-osprim-x32.ads (Clock): Adjust.
(To_Timespec): Likewise.

Modified:
trunk/gcc/ada/ChangeLog
trunk/gcc/ada/s-osinte-x32.adb
trunk/gcc/ada/s-osprim-x32.adb


[Bug c++/57926] Atomic functions broken with C++ but not C?

2014-04-09 Thread lailavrazda1979 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57926

--- Comment #14 from lailavrazda1979 at gmail dot com ---
Why wait? I'm not hugely opposed, but bugfixes are bugfixes, and one more fixed
bug makes a better 4.9 release, right?


[Bug libgomp/60801] In gfortran, certain array sizes lead to SEGV within OpenMP PARALLEL DO

2014-04-09 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60801

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
This sounds like you are running out of stack space.  a 515x515 array of 4 byte
wide is over a meg of data which is too big for the stack.


[Bug fortran/60795] [4.7/4.8/4.9 Regression] Wrong length when allocating character array

2014-04-09 Thread quantheory at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60795

Sean Santos quantheory at gmail dot com changed:

   What|Removed |Added

 CC||quantheory at gmail dot com

--- Comment #3 from Sean Santos quantheory at gmail dot com ---
In comment 2, y3, t3, and the second allocation of s3 are all cases of
PR44672; this is an unsupported feature of F2008.

The original case (comment 0, s1) may be a duplicate of PR57456.

The case s2 looks like a duplicate of PR58754, and s3 and s4 may be the
same issue. Or they may be related to PR50221.

So there are clearly some issues here, but I think that they are mostly old
issues, i.e. arrays of deferred-length strings have always been somewhat
broken.

I remember something about some intention to address this when implementing the
new array descriptor, though?


[Bug middle-end/60802] New: jump2 pass fails to do cfgcleanup

2014-04-09 Thread manjian2006 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60802

Bug ID: 60802
   Summary: jump2 pass fails to do cfgcleanup
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: manjian2006 at gmail dot com

problem source:
int foo (int *a, int s, int predicate)
{
  if (predicate  0)
{
  for (int i = 0; i  s; ++i)
{
  a[i] = 0xfafafafa;
}
}
  else if (predicate == 0)
{
  for (int i = 0; i  s; ++i)
{
  a[i] = 0xfcfcfcfc;
}
}
  else
{
  for (int i = 0; i  s; ++i)
{
  a[i] = 0xf2f2f2f2;
}
}
  return predicate;
}

compiles with -O3 -S

output assembly:
.L2:
.cfi_restore_state
jne.L10
testl%esi, %esi
jle.L7
subl$1, %esi
leaq4(,%rsi,4), %rdx
movl$252, %esi
=callmemset
movl%ebx, %eax
popq%rbx
.cfi_remember_state
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L10:
.cfi_restore_state
testl%esi, %esi
jle.L7
subl$1, %esi
leaq4(,%rsi,4), %rdx
movl$242, %esi
=callmemset
movl%ebx, %eax
popq%rbx
.cfi_def_cfa_offset 8

as we can see duplicate call memset and return assembly has been generated.

And I take a look at the output from jump2 pass,and examine the call site of
memset:

(call_insn 30 28 85 4 (set (reg:DI 0 ax)
(call (mem:QI (symbol_ref:DI (memset) [flags 0x41] function_decl
0x7fd0daa91d00 __builtin_memset) [0 memsetD.998 S1 A8])
(const_int 0 [0]))) 649 {*call_value}
 (expr_list:REG_DEAD (reg:DI 5 di)
(expr_list:REG_DEAD (reg:SI 4 si)
(expr_list:REG_DEAD (reg:DI 1 dx)
(expr_list:REG_UNUSED (reg:DI 0 ax)
(expr_list:REG_EH_REGION (const_int 0 [0])
(nil))
(expr_list:DI (set (reg:DI 0 ax)
(reg:DI 5 di))
(expr_list:DI (use (reg:DI 5 di))
(expr_list:SI (use (reg:SI 4 si))
(expr_list:DI (use (reg:DI 1 dx))
(nil))
(jump_insn 85 30 86 4 (set (pc)
(label_ref 84)) 636 {jump}
 (nil)
 - 84)


(call_insn 60 58 90 9 (set (reg:DI 0 ax)
(call (mem:QI (symbol_ref:DI (memset) [flags 0x41] function_decl
0x7fd0daa91d00 __builtin_memset) [0 memsetD.998 S1 A8])
(const_int 0 [0]))) 649 {*call_value}
 (expr_list:REG_DEAD (reg:DI 5 di)
(expr_list:REG_DEAD (reg:SI 4 si)
(expr_list:REG_DEAD (reg:DI 1 dx)
(expr_list:REG_UNUSED (reg:DI 0 ax)
(expr_list:REG_EH_REGION (const_int 0 [0])
(nil))
(expr_list:DI (set (reg:DI 0 ax)
(reg:DI 5 di))
(expr_list:DI (use (reg:DI 5 di))
(expr_list:SI (use (reg:SI 4 si))
(expr_list:DI (use (reg:DI 1 dx))
(nil))
(jump_insn 90 60 91 9 (set (pc)
(label_ref 84)) 636 {jump}
 (nil)
 - 84)



(call_insn 76 74 84 10 (set (reg:DI 0 ax)
(call (mem:QI (symbol_ref:DI (memset) [flags 0x41] function_decl
0x7fd0daa91d00 __builtin_memset) [0 memsetD.998 S1 A8])
(const_int 0 [0]))) 649 {*call_value}
 (expr_list:REG_DEAD (reg:DI 5 di)
(expr_list:REG_DEAD (reg:SI 4 si)
(expr_list:REG_DEAD (reg:DI 1 dx)
(expr_list:REG_UNUSED (reg:DI 0 ax)
(expr_list:REG_EH_REGION (const_int 0 [0])
(nil))
(expr_list:DI (set (reg:DI 0 ax)
(reg:DI 5 di))
(expr_list:DI (use (reg:DI 5 di))
(expr_list:SI (use (reg:SI 4 si))
(expr_list:DI (use (reg:DI 1 dx))
(nil))
three call sites have the identical content,and jump to the same basic block
after calls.So it may be combine as one.


[Bug middle-end/60802] jump2 pass fails to do cfgcleanup

2014-04-09 Thread manjian2006 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60802

linzj manjian2006 at gmail dot com changed:

   What|Removed |Added

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

--- Comment #1 from linzj manjian2006 at gmail dot com ---
after added a option --param min-crossjump-insns=1,the expecting assembly is
generated.


[Bug c++/60803] New: Trivial example of overloading in the presence of inheritance fails

2014-04-09 Thread eric.niebler at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60803

Bug ID: 60803
   Summary: Trivial example of overloading in the presence of
inheritance fails
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: eric.niebler at gmail dot com

The following very simple code fails to compile:

///
templatetypename Ts
struct refines
  : Ts
{};

struct A
{};

struct B
  : refinesA
{};

struct C
  : refinesB
{};

void fun(void *)
{}

templatetypename T
int fun(refinesT *)
{
  return 0;
}

int main()
{
  C *p = 0;
  int i = fun(p);
}



[Bug libgomp/60801] In gfortran, certain array sizes lead to SEGV within OpenMP PARALLEL DO

2014-04-09 Thread genflot at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60801

Ryan genflot at yahoo dot com changed:

   What|Removed |Added

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

--- Comment #2 from Ryan genflot at yahoo dot com ---
(In reply to Andrew Pinski from comment #1)
 This sounds like you are running out of stack space.  a 515x515 array of 4
 byte wide is over a meg of data which is too big for the stack.

Andrew,

You are correct: that was my problem.

It had occurred to me that this could be a stack space issue, so I (uselessly)
tried ulimit -s unlimited before posting my original message.  After reading
your comment, I did export OMP_STACKSIZE=1G, which solved my problem.

Thank you for your help,
--Ryan


[Bug c/60804] New: Another CilkPlus ICE in gimplify_expr, at gimplify.c:8335

2014-04-09 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60804

Bug ID: 60804
   Summary: Another CilkPlus ICE in gimplify_expr, at
gimplify.c:8335
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: andi-gcc at firstfloor dot org

Created attachment 32577
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32577action=edit
test case from csmith

I hacked csmith to add some _Cilk_spawn keywords and let it run for a bit.

The only new ICE that turned up was this (in various incarnations)

Here's the unreduced file from csmith.

x.c:178:35: internal compiler error: in gimplify_expr, at gimplify.c:8335
 if ((safe_div_func_uint8_t_u_u(_Cilk_spawn func_4(((--(*l_9)) , g_10),

void*)0 != g_13) , (g_14[1][0] == ((safe_add_func_uint32_t_u_u(g_14[1][0],
(g_1
9 || (((*l_2079) = _Cilk_spawn
func_20(((safe_rshift_func_uint16_t_u_s((~((*l_39
) = ((safe_rshift_func_int16_t_s_u(((*l_37) =
(safe_add_func_int8_t_s_s((_Cilk_s
pawn func_28(g_31, g_32) = g_19), 0x5FL))), 11)) , 0xC254L))), 5))  g_19)))
!=
 (void*)0 , g_33))) | l_2080), g_420[4][0][1], g_847), l_2080)))
   ^
0x79bad0 gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_ba
se**, bool (*)(tree_node*), int)
../../gcc/gcc/gimplify.c:8335
0x799d38 gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_ba
se**, bool (*)(tree_node*), int)
../../gcc/gcc/gimplify.c:7715
0x7a0ed3 gimplify_call_expr
../../gcc/gcc/gimplify.c:2354
0x79b1fc gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_ba
se**, bool (*)(tree_node*), int)
../../gcc/gcc/gimplify.c:7402
0x79aacc gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_ba
...


[Bug c++/60803] Trivial example of overloading in the presence of inheritance fails

2014-04-09 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60803

Daniel Krügler daniel.kruegler at googlemail dot com changed:

   What|Removed |Added

 CC||daniel.kruegler@googlemail.
   ||com

--- Comment #1 from Daniel Krügler daniel.kruegler at googlemail dot com ---
Also fails for the 4.9.0 trunk, the relevant part of the error message being

quote
main.cpp: In function 'int main()': 
main.cpp:29:16: error: void value not ignored as it ought to be 
 int i = fun(p); 
  ^
/quote