[Bug fortran/57922] [OOP] Memory leak with allocatable polymorphics

2013-07-22 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57922

janus at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from janus at gcc dot gnu.org ---
(In reply to Tobias Burnus from comment #2)
 (In reply to janus from comment #1)
  On x86_64-unknown-linux-gnu, I can confirm the problem with 4.7 and 4.8.
  However, the leak seems to be gone in the latest trunk version:
 
 Which is not very surprising as the finalization code should also take care
 of this. See PR37336. I believe r199643 was the enabling commit.

Right. Although the test case does not actually deal with finalization, but
rather involves polymorphic deallocation (i.e. PR 46321).

Anyway, closing as fixed.


[Bug fortran/46321] [OOP] Polymorphic deallocation

2013-07-22 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46321

--- Comment #7 from janus at gcc dot gnu.org ---
Comment 0 has apparently been fixed by r199643. One should check whether the
remaining items are also handled correctly already (in particular comments 1 -
3).


[Bug target/57952] New: AVX/AVX2 no ymm registries used in a trivial reduction

2013-07-22 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57952

Bug ID: 57952
   Summary: AVX/AVX2 no ymm registries used in a trivial reduction
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vincenzo.innocente at cern dot ch

in this quite trivial benchmark
gcc does not generate avx/avx2 instruction using ymm registries
c++ -Ofast -S polyAVX.cpp -march=core-avx2 ; grep -c ymm polyAVX.s
0
clang++ -Ofast -S polyAVX.cpp -march=core-avx2 ; grep -c ymm polyAVX.s
73

same for -march=corei7-avx
gcc version 4.9.0 20130718 (experimental) [trunk revision 201034] (GCC) 


with obvious speed effect…
 c++ -Ofast polyAVX.cpp -march=core-avx2 ; time ./a.out 
0.508u 0.000s 0:00.50 100.0%0+0k 0+0io 1pf+0w
clang++ -Ofast polyAVX.cpp -march=core-avx2 ; time ./a.out
0.257u 0.000s 0:00.25 100.0%0+0k 0+0io 1pf+0w


cat polyAVX.cpp
//templatetypename T
typedef float T;
inline T polyHorner(T y) {
  return  T(0x2.p0) + y * (T(0x2.p0) + y * (T(0x1.p0) + y * (T(0x5.55523p-4) +
y * (T(0x1.5554dcp-4) + y * (T(0x4.48f41p-8) + y * T(0xb.6ad4p-12)) ;
}

int main() {

bool ret=true;
float s =0;
for (int k=0; k!=100; ++k) {
  float c = 1.f/100.f;
  for (int i=1; i1001; ++i) s+= polyHorner((float(i)+1.f)*c);
}
ret = s!=0;


  return ret ? 0 : -1;


}

[Bug fortran/56937] Unnecessarily temporary with array-vector assignments

2013-07-22 Thread mikael at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56937

--- Comment #12 from Mikael Morin mikael at gcc dot gnu.org ---
(In reply to Thomas Koenig from comment #11)
 A big part is fixed now.
 
 Do people think that the case of comment#8 is worth fixing?

At least it's worth having one PR open for it IMO.


[Bug c++/57880] cp/parser.c: 6 * missing break ?

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57880

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com ---
Ed?


[Bug c++/57888] using non-type template parameter in constexpr function for non static data member intializer segfaults

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57888

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com ---
This is a Dup.

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


[Bug c++/57827] compiler segmentation fault

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57827

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||plasmahh at gmx dot net

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


[Bug c++/57892] g++ internal compiler error: in expand_expr_real_1, at expr.c:9122 while attempting to brace-initialize a dynamically allocated array class member

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57892

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Known to work||4.8.0, 4.8.1, 4.9.0
 Resolution|--- |FIXED

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
In fact works with 4.8.0 too.


[Bug c++/57897] Target x86_64-w64-mingw32 failed with '-mno-fentry isn't compatible with SEH'

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57897

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||ktietz at gcc dot gnu.org

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com ---
Kai, can you have a look?


[Bug c++/57901] [4.8/4.9 Regression] Cannot call-by-value such that class has non-trivial (constexpr) move constructor

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57901

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-07-22
  Known to work||4.7.3
Summary|[C++11][constexpr] Cannot   |[4.8/4.9 Regression] Cannot
   |call-by-value such that |call-by-value such that
   |class has non-trivial   |class has non-trivial
   |(constexpr) move|(constexpr) move
   |constructor |constructor
 Ever confirmed|0   |1
  Known to fail||4.8.0, 4.8.1, 4.9.0

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com ---
We may have a Dup of this.


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

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57926

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||amacleod at redhat dot com

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
CC-ing Andrew for the array-pointer issue. Or is this a more general C++
front-end issue?


[Bug c++/57938] Compiler breaks when a lambda expression is used as a default parameter in a constructor

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57938

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

  Known to work||4.8.0, 4.8.1, 4.9.0
 Resolution|--- |FIXED
 Status|UNCONFIRMED |RESOLVED
 CC|francesco.nidito at gmail dot com  |

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com ---
Works fine in 4.8.0 too.


[Bug c++/57930] missing destructor call after thrown exception in C++11 list initialization

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57930

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||jwakely.gcc at gmail dot com

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com ---
Maybe we have another one too, but isn't this PR57510?


[Bug lto/57602] [4.9 Regression] Runfails for several C/C++ benchmarks from spec2000 for i686 with -flto after r199422

2013-07-22 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57602

Uroš Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-07-22
   Target Milestone|--- |4.9.0
Summary|Runfails for several C/C++  |[4.9 Regression] Runfails
   |benchmarks from spec2000|for several C/C++
   |for i686 with -flto after   |benchmarks from spec2000
   |r199422 |for i686 with -flto after
   ||r199422
 Ever confirmed|0   |1

--- Comment #7 from Uroš Bizjak ubizjak at gmail dot com ---
Confirmed, a 4.9 regression.

[Bug c++/57948] internal compiler error: in initialize_reference, at cp/call.c:9285

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57948

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-07-22
 Ever confirmed|0   |1


[Bug c++/57946] internal compiler error: Segmentation fault in int_fits_type_p

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57946

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-07-22
 Ever confirmed|0   |1


[Bug c++/57947] internal compiler error: Segmentation fault using extended initializer lists without -std=c++11 or -std=gnu++11

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57947

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2013-07-22
 Ever confirmed|0   |1

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com ---
I can't reproduce this (with or without the std::) Looks like the error message
doesn't match the code (line #8 ?!?)


[Bug c++/57930] missing destructor call after thrown exception in C++11 list initialization

2013-07-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57930

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
Yes, that's probably the one I'm thinking of.

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


[Bug c++/57510] initializer_list memory leak

2013-07-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57510

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mmehlich at semanticdesigns 
dot co
   ||m

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
*** Bug 57930 has been marked as a duplicate of this bug. ***


[Bug fortran/37336] Fortran 2003: Finish derived-type finalization

2013-07-22 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37336

Bug 37336 depends on bug 55207, which changed state.

Bug 55207 Summary: Automatic deallocation of variables declared in the main 
program
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55207

   What|Removed |Added

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


[Bug fortran/55207] Automatic deallocation of variables declared in the main program

2013-07-22 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55207

janus at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #7 from janus at gcc dot gnu.org ---
I think this PR has been fixed by r199643.


[Bug fortran/57762] [4.9 Regression] Memory leak in gfortran.dg/class_array_7.f03 after revision 200084

2013-07-22 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57762

janus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu.org

--- Comment #3 from janus at gcc dot gnu.org ---
(In reply to Dominique d'Humieres from comment #2)
  If it makes you happy, the following plugs the memory leak:
 
  --- a/gcc/testsuite/gfortran.dg/class_array_7.f03
  +++ b/gcc/testsuite/gfortran.dg/class_array_7.f03
  @@ -56,2 +56,3 @@ program main
 if (trim (print_type (a, a)) .ne. a is base_type) call abort
  +  deallocate (a)
   end program main
 
  ...
 
 Well, it makes valgrind happy.

And it certainly does not hurt to fix the test case in this regard.


 Is there any connection with PR55207 -
 Automatic deallocation of variables declared in the main program?

Yes, sure.

However, I don't directly see how the leak is related to r200084 ...


[Bug c++/57793] [4.7/4.8/4.9 Regression] ICE with bitfields in get_bit_range

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57793

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

--- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com ---
Thus this is fixed for 4.9.0.


[Bug libstdc++/57925] discrete_distribution can be improved to O(1) per sampling

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57925

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2013-07-22
   Assignee|unassigned at gcc dot gnu.org  |paolo.carlini at oracle 
dot com
   Target Milestone|--- |4.9.0
 Ever confirmed|0   |1

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


[Bug inline-asm/57950] wrong line numbers in error messages for inline assembler statements

2013-07-22 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57950

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu.org

--- Comment #3 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Andreas Schwab from comment #2)
 GCC uses the line number of the start of the asm statement, so line 8 is
 correct.

Correct as expected but not as desired.

This is what Clang prints by comparison:

asm-line-number.c:3:12: error: invalid instruction mnemonic 'foo'
  __asm__ (foo\nfoo);
   ^
inline asm:1:2: note: instantiated into assembly here
foo
^~~
asm-line-number.c:3:18: error: invalid instruction mnemonic 'foo'
  __asm__ (foo\nfoo);
 ^
inline asm:2:1: note: instantiated into assembly here
foo
^~~
asm-line-number.c:10:7: error: invalid instruction mnemonic 'foo'
  foo
  ^
inline asm:1:2: note: instantiated into assembly here
foo
^~~
3 errors generated.

It seems difficult to get there without an integrated assembler, but GCC could
at least provide better locations to GAS (and GAS understand and print column
numbers), so we could get:

asm-line-number.c: Assembler messages:
asm-line-number.c:3:12: Error: no such instruction: `foo'
asm-line-number.c:3:18: Error: no such instruction: `foo'
asm-line-number.c:10:7: Error: no such instruction: `foo'

Any editor worth its salt would jump to the correct line and column in the
sources.

[Bug inline-asm/57950] wrong line numbers in error messages for inline assembler statements

2013-07-22 Thread f.heckenb...@fh-soft.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57950

--- Comment #4 from Frank Heckenbach f.heckenb...@fh-soft.de ---
(In reply to Manuel López-Ibáñez from comment #3)
 (In reply to Andreas Schwab from comment #2)
  GCC uses the line number of the start of the asm statement, so line 8 is
  correct.
 
 Correct as expected but not as desired.

And it would only explain the latter messages, not the former ones
reported as lines 3 and 4.

 This is what Clang prints by comparison:
 
 asm-line-number.c:3:12: error: invalid instruction mnemonic 'foo'
   __asm__ (foo\nfoo);
^
 inline asm:1:2: note: instantiated into assembly here
 foo
 ^~~
 asm-line-number.c:3:18: error: invalid instruction mnemonic 'foo'
   __asm__ (foo\nfoo);
  ^
 inline asm:2:1: note: instantiated into assembly here
 foo
 ^~~
 asm-line-number.c:10:7: error: invalid instruction mnemonic 'foo'
   foo
   ^
 inline asm:1:2: note: instantiated into assembly here
 foo
 ^~~
 3 errors generated.
 
 It seems difficult to get there without an integrated assembler, but GCC
 could at least provide better locations to GAS (and GAS understand and print
 column numbers), so we could get:
 
 asm-line-number.c: Assembler messages:
 asm-line-number.c:3:12: Error: no such instruction: `foo'
 asm-line-number.c:3:18: Error: no such instruction: `foo'
 asm-line-number.c:10:7: Error: no such instruction: `foo'
 
 Any editor worth its salt would jump to the correct line and column in the
 sources.

The clang output is indeed very nice, though to me, the wrong line
numbers (at least in the presence of \n) are the more serious
problem than the lack of column numbers.

[Bug testsuite/57591] gcc-4.8 libbacktrace btest failure on Linux ppc64

2013-07-22 Thread acrux at linuxmail dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57591

--- Comment #4 from acrux acrux at linuxmail dot org ---
same failure with  gcc-4.8-20130718


[Bug libstdc++/57920] [c++11] Linux: std::random_device reads too much from /dev/urandom

2013-07-22 Thread f.heckenb...@fh-soft.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57920

--- Comment #5 from Frank Heckenbach f.heckenb...@fh-soft.de ---
(In reply to Paolo Carlini from comment #1)
 Note that in 4.8.x and mainline for modern x86 and x86_64 targets we don't
 use /dev/urandom at all, we use __x86_rdrand. In general, the idea is that
 more targets should use hardware support for random numbers and /dev/urandom
 become just a fall back. I'm not sure changing fread to read it's worth the
 trouble, and the change, since we are not talking about a regression, would
 not go in 4.7.x branch anyway. Are you on x86 / x86_64 or something else?

I use an AMD (Thuban) in 32 bit mode. This processor core is ~3 years old
and AFAICS it doesn't support rdrand. So even if newer AMDs do supports it
(which I don't know), I guess it's fair to say that for some more years
there will be processors around which don't, and in this case I assume
gcc falls back to /dev/urandom.


[Bug libstdc++/57920] [c++11] Linux: std::random_device reads too much from /dev/urandom

2013-07-22 Thread f.heckenb...@fh-soft.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57920

--- Comment #6 from Frank Heckenbach f.heckenb...@fh-soft.de ---
(In reply to Paolo Carlini from comment #3)
 I'm going to attach a patchlet which does the trick (fread - read) for me.
 Note I'm on purpose disabling the use of __builtin_ia32_rdrand32_step on my
 x86_64 machine, the undef would not be in the committed patch of course.
 
 It would be great if you could test the change on your machines (in 4.7.x
 just change random.h, no need to rebuild) and confirm that everything is
 fine.

I did the equivalent change to /usr/include/c++/4.7/bits/random.h and it works
for me, thanks.


[Bug libstdc++/57920] [c++11] Linux: std::random_device reads too much from /dev/urandom

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57920

--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com ---
Agreed, let's just commit the improvement. If/when you become aware of ways to
extend the use of builtins to other CPUs / targets, please let me know, thanks.


[Bug inline-asm/57950] wrong line numbers in error messages for inline assembler statements

2013-07-22 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57950

--- Comment #6 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Andreas Schwab from comment #5)
 The error messages are all generated by the assembler which knows nothing
 about the source file.

It knows the locations passed by GCC. (And it could know the column also, if
gas supported that). GCC seem to be passing wrong line numbers.

[Bug inline-asm/57950] wrong line numbers in error messages for inline assembler statements

2013-07-22 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57950

--- Comment #5 from Andreas Schwab sch...@linux-m68k.org ---
The error messages are all generated by the assembler which knows nothing about
the source file.


[Bug inline-asm/57950] wrong line numbers in error messages for inline assembler statements

2013-07-22 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57950

--- Comment #7 from Andreas Schwab sch...@linux-m68k.org ---
There is no way to know how the newline was written.


[Bug libstdc++/57953] no C++11 compliant std::ios_base::failure found

2013-07-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57953

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to unixway.drive+gcc from comment #0)
 §27.5.3 states that ios_base defines ... a class failure derived from
 system_error.

And http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011
states this isn't implemented yet.

[Bug c++/57892] g++ internal compiler error: in expand_expr_real_1, at expr.c:9122 while attempting to brace-initialize a dynamically allocated array class member

2013-07-22 Thread morell at cs dot atu.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57892

--- Comment #4 from morell at cs dot atu.edu ---
Thank you!
On 07/22/2013 04:55 AM, paolo.carlini at oracle dot com wrote:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57892

 Paolo Carlini paolo.carlini at oracle dot com changed:

 What|Removed |Added
 
   Status|UNCONFIRMED |RESOLVED
Known to work||4.8.0, 4.8.1, 4.9.0
   Resolution|--- |FIXED

 --- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
 In fact works with 4.8.0 too.



[Bug libstdc++/57953] New: no C++11 compliant std::ios_base::failure found

2013-07-22 Thread unixway.drive+gcc at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57953

Bug ID: 57953
   Summary: no C++11 compliant std::ios_base::failure found
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: unixway.drive+gcc at gmail dot com

§27.5.3 states that ios_base defines ... a class failure derived from
system_error. The only std::ios_base::failure I see in a libstdc++ is a
pre-C++11 ones.

$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.1/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/gcc/src/gcc-4.8.1/configure --prefix=/usr
--libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/
--enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared
--enable-threads=posix --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch
--enable-gnu-unique-object --enable-linker-build-id --enable-cloog-backend=isl
--disable-cloog-version-check --enable-lto --enable-gold --enable-ld=default
--enable-plugin --with-plugin-ld=ld.gold --with-linker-hash-style=gnu
--disable-install-libiberty --disable-multilib --disable-libssp
--disable-werror --enable-checking=release
Thread model: posix
gcc version 4.8.1 (GCC) 

$ g++ -std=c++11 test.cpp
test.cpp: In function ‘int main(int, char**)’:
test.cpp:10:18: error: ‘class std::ios_base::failure’ has no member named
‘code’
   std::cout  e.code().value()  std::endl;

[Bug c++/57880] cp/parser.c: 6 * missing break ?

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57880

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com ---
Maybe he is simply traveling or unable to read email, don't you think?

Still, if you want to send a patch to the mailing list, of course it's fine.
For a quicker review, I would recommend CC-ing Jason and adding [C++ Patch] to
the subject line. Thanks.


[Bug c++/54853] internal compiler error: Segmentation fault

2013-07-22 Thread leonid at volnitsky dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54853

--- Comment #4 from Leonid Volnitsky leonid at volnitsky dot com ---
I can not reproduce this ICE with 4.8.1.  It is ok to close this bug.


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

2013-07-22 Thread amacleod at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57926

--- Comment #4 from Andrew Macleod amacleod at redhat dot com ---
Short answer.. I'm not a sure, but it appears to be a g++ thing.

I looks like g++ is using ARRAY_TYPE instead of POINTER_TYPE.  the 4.8 branch
does the same thing, but it does seem odd to me.  That means anywhere in the
compiler that uses POINTER_TYPE_P() is not going to trigger true for an array
in c++...

Going back to gcc 4.6 which only had __sync operations, the same issue exists:

x220:/home/compilers/gcc-4_6-branch/build/gcccat t.cpp
long int Mutex[1];
int AcquireLogMutex(void)
{
return(__sync_fetch_and_add(Mutex, 1));
}


int main() {}
x220:/home/compilers/gcc-4_6-branch/build/gcc./cc1plus t.cpp
 int AcquireLogMutex()
t.cpp:5:38: error: incompatible type for argument 1 of ‘__sync_fetch_and_add’


Im stunned this has never been tripped over. 

I can fix it in the atomic code, but I don't know what that means to other
languages since I've never paid attention to the detailed meaning of ARRAY_TYPE
vs POINTER_TYPE.  Just allowing the ARRAY_TYPE objects to pass the existing
atomic tests of POINTER_TYPE_P or POINTER_TYPE appears to generate all the
correct code and errors for atomics, so I guess thats is the way to go...?   
there are only a couple of places the check is made.

[Bug c++/57905] braced-init-list allowed in default template-argument

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57905

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

   Keywords||accepts-invalid
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-07-22
 Ever confirmed|0   |1


[Bug middle-end/57811] Wasted work in find_reloads()

2013-07-22 Thread pchang9 at cs dot wisc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57811

--- Comment #4 from Po-Chun Chang pchang9 at cs dot wisc.edu ---
Patch sent to gcc-patches@

http://gcc.gnu.org/ml/gcc-patches/2013-07/msg00930.html


[Bug rtl-optimization/57812] Wasted work in computed_jump_p()

2013-07-22 Thread pchang9 at cs dot wisc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57812

--- Comment #3 from Po-Chun Chang pchang9 at cs dot wisc.edu ---
Patch sent to gcc-patches@

http://gcc.gnu.org/ml/gcc-patches/2013-07/msg00931.html


[Bug lto/57602] [4.9 Regression] Runfails for several C/C++ benchmarks from spec2000 for i686 with -flto after r199422

2013-07-22 Thread d.g.gorbachev at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57602

--- Comment #8 from Dmitry Gorbachev d.g.gorbachev at gmail dot com ---
And a testcase from PR57879 fails with -O2 / -O1 and -flto, it happens when
building GCC itself.


[Bug lto/57879] GCC with -flto generates invalid code for genmddeps program

2013-07-22 Thread d.g.gorbachev at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57879

Dmitry Gorbachev d.g.gorbachev at gmail dot com changed:

   What|Removed |Added

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

--- Comment #3 from Dmitry Gorbachev d.g.gorbachev at gmail dot com ---
.

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


[Bug middle-end/57806] Wasted work in propagate_nothrow()

2013-07-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57806

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

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

--- Comment #3 from Jeffrey A. Law law at redhat dot com ---
Fixed on mainline.


[Bug middle-end/57790] Wasted work in can_move_insns_across()

2013-07-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57790

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

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

--- Comment #3 from Jeffrey A. Law law at redhat dot com ---
Fixed on mainline.


[Bug middle-end/57809] Wasted work in omega_eliminate_red()

2013-07-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57809

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

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

--- Comment #8 from Jeffrey A. Law law at redhat dot com ---
Fixed on mainline.


[Bug fortran/57803] Wasted work in gfc_build_dummy_array_decl()

2013-07-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57803

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

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

--- Comment #3 from Jeffrey A. Law law at redhat dot com ---
Fixed on mainline.


[Bug libstdc++/57920] [c++11] Linux: std::random_device reads too much from /dev/urandom

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57920

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

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


[Bug c++/57880] cp/parser.c: 6 * missing break ?

2013-07-22 Thread dcb314 at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57880

--- Comment #3 from David Binderman dcb314 at hotmail dot com ---
(In reply to Paolo Carlini from comment #2)
 Ed?

He's had eleven days to think about it and said nothing.

I'd be happy to supply the obvious patch.


[Bug target/57949] [powerpc64] Structure parameter alignment issue with vector extensions

2013-07-22 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57949

--- Comment #1 from Bill Schmidt wschmidt at gcc dot gnu.org ---
The front end identifies the structure as having the correct alignment.  From
the 001t.tu dump:

@2846   record_type  name: @2857size: @127 algn: 128 
 tag : struct   flds: @2858   
@2857   identifier_node  strg: slngt: 1   
@2858   field_decl   name: @2870type: @16  scpe: @2846   
 srcp: vec-abi.c:3 chain: @2871   
 size: @22  algn: 64   bpos: @20 
@2870   identifier_node  strg: mlngt: 1   
@2871   field_decl   name: @2882type: @2817scpe: @2846   
 srcp: vec-abi.c:3 size: @19 
 algn: 128  bpos: @19 
@2882   identifier_node  strg: vlngt: 1


[Bug target/57954] New: AVX missing vxorps (zeroing) before vcvtsi2s %edx, slow down AVX code

2013-07-22 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57954

Bug ID: 57954
   Summary: AVX missing vxorps (zeroing) before vcvtsi2s %edx,
slow down AVX code
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vincenzo.innocente at cern dot ch

in the following benchmark performances w/o vectorization are poor wrt to
expectations
I find out this is due to non zeroing a register before using it 

c++ -O2 -S polyAVX.cpp -mavx
 as -v --64 -o polyAVX.o polyAVX.s
GNU assembler version 2.23.1 (x86_64-redhat-linux-gnu) using BFD version (GNU
Binutils) 2.23.1
c++ -O2 polyAVX.o -march=corei7-avx ; time ./a.out
53896530759
15.418u 0.000s 0:15.43 99.8%0+0k 0+0io 1pf+0w
patch polyAVX.s
49a50
 vxorps  %xmm0,%xmm0,%xmm0
patching file polyAVX.s
as -v --64 -o polyAVX.o polyAVX.s
GNU assembler version 2.23.1 (x86_64-redhat-linux-gnu) using BFD version (GNU
Binutils) 2.23.1
c++ -O2 polyAVX.o -march=corei7-avx ; time ./a.out
10340756863
2.958u 0.000s 0:02.96 99.6%0+0k 0+0io 1pf+0w

I am sure there are many other cases like this.
gcc version 4.9.0 20130718 (experimental) [trunk revision 201034] (GCC) 

cat polyAVX.cpp 
//templatetypename T
typedef float T;
inline T polyHorner(T y) {
  return  T(0x2.p0) + y * (T(0x2.p0) + y * (T(0x1.p0) + y * (T(0x5.55523p-4) +
y * (T(0x1.5554dcp-4) + y * (T(0x4.48f41p-8) + y * T(0xb.6ad4p-12)) ;
}

#include x86intrin.h
#includeiostream

volatile unsigned long long rdtsc() {
unsigned int taux=0;
return __rdtscp(taux);
  }

int main() {


  long long t=0;

bool ret=true;
float s =0;
for (int k=0; k!=100; ++k) {
  float c =   1.f/1000.f;
  t -=rdtsc();
  for (int i=1; i1001; ++i) s+= polyHorner((float(i)+float(k))*c);
  t+=rdtsc();
}
ret = s!=0;

  std::cout  t std::endl;

  return ret ? 0 : -1;


}


[Bug c++/52816] [C++11] Access to private members inside decltype in the signature of a member template causes access control error

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52816

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com ---
Let's add the testcase and close the issue as fixed for 4.8.0.


[Bug c++/54853] internal compiler error: Segmentation fault

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54853

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2013-07-22
 Ever confirmed|0   |1

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
Please provide a reduced testcase, normally ~20 lines are more than enough for
C++ front-end issues: http://gcc.gnu.org/wiki/A_guide_to_testcase_reduction


[Bug target/57949] [powerpc64] Structure parameter alignment issue with vector extensions

2013-07-22 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57949

--- Comment #2 from Bill Schmidt wschmidt at gcc dot gnu.org ---
The wrong code is introduced during expand.  vs.m is computed as

  mem(plus(virtual-incoming-args, 72))

with the pad at offset 80, v[0..1] at offset 88, and v[2..3] at offset 96.  All
are shown as having alignment 8.  vs.m should have been placed at offset 80.

After loading these into virtual regs with DI mode, they are stored at offsets
0, 8, 16, 24 from virtual-stack-vars, which is given an alignment of 128. 
Later the vector is loaded with V4SF mode.


[Bug lto/57602] [4.9 Regression] Runfails for several C/C++ benchmarks from spec2000 for i686 with -flto after r199422

2013-07-22 Thread d.g.gorbachev at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57602

Dmitry Gorbachev d.g.gorbachev at gmail dot com changed:

   What|Removed |Added

 CC||d.g.gorbachev at gmail dot com

--- Comment #9 from Dmitry Gorbachev d.g.gorbachev at gmail dot com ---
*** Bug 57879 has been marked as a duplicate of this bug. ***


[Bug fortran/57762] [4.9 Regression] Memory leak in gfortran.dg/class_array_7.f03 after revision 200084

2013-07-22 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57762

--- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org ---
Author: burnus
Date: Mon Jul 22 17:02:26 2013
New Revision: 201137

URL: http://gcc.gnu.org/viewcvs?rev=201137root=gccview=rev
Log:
2013-07-22  Tobias Burnus  bur...@net-b.de

PR fortran/57762
* gfortran.dg/class_array_7.f03: Fix memory leak.


Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/class_array_7.f03


[Bug fortran/57762] [4.9 Regression] Memory leak in gfortran.dg/class_array_7.f03 after revision 200084

2013-07-22 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57762

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org ---
The memory leak is now plugged - hence, close it as FIXED.


[Bug c++/52816] [C++11] Access to private members inside decltype in the signature of a member template causes access control error

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52816

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

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


[Bug c++/54853] internal compiler error: Segmentation fault

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54853

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
  Known to work||4.8.1
 Resolution|--- |FIXED

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com ---
Ok, thanks.


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

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57926

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com ---
Thanks a lot Andrew. I think it makes sense to CC Jason.


[Bug fortran/57906] Coarray components: Assignment optimized away (gfortran.dg/coarray/lib_realloc_1.f90)

2013-07-22 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57906

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org ---
FIXED on the trunk (4.9)


[Bug fortran/52052] [Coarray] Properly handle coarray components of derived types

2013-07-22 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52052

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org ---
(In reply to Tobias Burnus from comment #0)
 Intrinsic assignment: Contrary to normal allocatable components,
 no reallocation is allowed. The programmer guarantees that the shape and
 type parameters are suitable.

Patches:
- http://gcc.gnu.org/ml/fortran/2013-06/msg00137.html (committed)
- http://gcc.gnu.org/ml/fortran/2013-07/msg00041.html (committed)


[Bug fortran/52052] [Coarray] Properly handle coarray components of derived types

2013-07-22 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52052

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org ---
Author: burnus
Date: Mon Jul 22 17:28:56 2013
New Revision: 201140

URL: http://gcc.gnu.org/viewcvs?rev=201140root=gccview=rev
Log:
2013-07-22  Tobias Burnus  bur...@net-b.de

PR fortran/57906
PR fortran/52052
* class.c (gfc_build_class_symbol): Set coarray_comp.
* trans-array.c (structure_alloc_comps): For coarrays,
directly use the data pointer address.

2013-07-22  Tobias Burnus  bur...@net-b.de

PR fortran/57906
PR fortran/52052
* coarray/lib_realloc_1.f90: Permit optimization.
* gfortran.dg/coarray_31.f90: New.


Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/class.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/coarray/lib_realloc_1.f90


[Bug fortran/57906] Coarray components: Assignment optimized away (gfortran.dg/coarray/lib_realloc_1.f90)

2013-07-22 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57906

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org ---
Author: burnus
Date: Mon Jul 22 17:28:56 2013
New Revision: 201140

URL: http://gcc.gnu.org/viewcvs?rev=201140root=gccview=rev
Log:
2013-07-22  Tobias Burnus  bur...@net-b.de

PR fortran/57906
PR fortran/52052
* class.c (gfc_build_class_symbol): Set coarray_comp.
* trans-array.c (structure_alloc_comps): For coarrays,
directly use the data pointer address.

2013-07-22  Tobias Burnus  bur...@net-b.de

PR fortran/57906
PR fortran/52052
* coarray/lib_realloc_1.f90: Permit optimization.
* gfortran.dg/coarray_31.f90: New.


Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/class.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/coarray/lib_realloc_1.f90


[Bug c++/57947] internal compiler error: Segmentation fault using extended initializer lists without -std=c++11 or -std=gnu++11

2013-07-22 Thread cas43 at cs dot stanford.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57947

--- Comment #2 from Craig Schroeder cas43 at cs dot stanford.edu ---
Unfortunately that is because I tried cleaning up the test case some more after
reducing it down.  How about this:

namespace std
{
template class _E class initializer_list {};
template int N struct D {D(std::initializer_listint) {}};
D0 d{1, 2, 3};
}


[Bug c++/57947] internal compiler error: Segmentation fault using extended initializer lists without -std=c++11 or -std=gnu++11

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57947

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
 Status|WAITING |NEW

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
Ok, thanks.


[Bug target/57787] Wasted work in ix86_valid_target_attribute_inner_p() and ix86_pad_returns()

2013-07-22 Thread pchang9 at cs dot wisc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57787

--- Comment #2 from Po-Chun Chang pchang9 at cs dot wisc.edu ---
Patch sent to gcc-patches@

http://gcc.gnu.org/ml/gcc-patches/2013-07/msg00941.html


[Bug inline-asm/57950] wrong line numbers in error messages for inline assembler statements

2013-07-22 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57950

--- Comment #8 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Andreas Schwab from comment #7)
 There is no way to know how the newline was written.

Sorry I don't get this. Could you elaborate?

There are some technical limitations of GCC:

* string constants don't have their own location:
* asm expressions only have one location (starting at the asm keyword)
* GCC currently doesn't look at all into the string constant given to an asm
expression.

First, it is not clear that the location given to asm expressions needs to be
the location of the asm keyword. It could be the location of the string and it
would be already an improvement.

Second, when printing the assembler, GCC can check for newlines and simply
print the line directive after each newline. I see one potential problem:

 static void f1 ()
{
  __asm__ (foo\n
   foo);
}

This works OK now by pure chance but it will be broken by the above trick. To
reliably fix this, GCC must learn to track locations of multi-line strings.
Interestingly, the same problem we face when improving the diagnostics for
-Wformat: PR52952

[Bug inline-asm/57950] wrong line numbers in error messages for inline assembler statements

2013-07-22 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57950

--- Comment #9 from Andreas Schwab sch...@linux-m68k.org ---
The assembler only sees literal newlines, it does not know how they were
written in the source.

The compiler cannot put line directives in the middle of an assembler string by
itself because it cannot know how the assembler will interpret the text around
the newline.  This will surely break things.


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

2013-07-22 Thread amacleod at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57926

Andrew Macleod amacleod at redhat dot com changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |amacleod at redhat dot 
com

--- Comment #6 from Andrew Macleod amacleod at redhat dot com ---
Created attachment 30535
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30535action=edit
should fix bug

So this would appear to fix the problem by allowing ARRAY_TYPE as well as
POINTER_TYPE to appear where the atomic pointer is required.

I haven't bootstrapped it or anything yet, but assuming that ARRAY_TYPE from
the g++ front-end means the same as POINTER_TYPE in this context, this would be
the solution and I'll proceed with a test case and proper bootstrap/submission.

You can try it if you want :-) I tried a few different contexts and got the
behaviour I expected in each case.


[Bug inline-asm/57950] wrong line numbers in error messages for inline assembler statements

2013-07-22 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57950

--- Comment #10 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Andreas Schwab from comment #9)
 The assembler only sees literal newlines, it does not know how they were
 written in the source.

Is there other way to generate literal newlines apart from printing a literal
newline? And why it matters how they were written in the source code? The point
is that GCC should see that it is a literal newline and hint GAS that it was
actually in the same line (or not) in the original source code. GAS does not
need to know anything.

 The compiler cannot put line directives in the middle of an assembler string
 by itself because it cannot know how the assembler will interpret the text
 around the newline.  This will surely break things.

If there are restrictions on the lines where the location directives can appear
in an assembler file, then it is a problem, yes. I wasn't aware of such
restrictions, I was assuming that they were basically like preprocessor
directives.

Oh, well, another reason why an integrated assembler is such a good idea...

[Bug target/57949] [powerpc64] Structure parameter alignment issue with vector extensions

2013-07-22 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57949

--- Comment #3 from Bill Schmidt wschmidt at gcc dot gnu.org ---
The problem is target-specific, in config/rs6000/rs6000.c:
rs6000_function_arg_boundary().

static unsigned int
rs6000_function_arg_boundary (enum machine_mode mode, const_tree type)
{
  if (DEFAULT_ABI == ABI_V4
   (GET_MODE_SIZE (mode) == 8
  || (TARGET_HARD_FLOAT
   TARGET_FPRS
   (mode == TFmode || mode == TDmode
return 64;
  else if (SPE_VECTOR_MODE (mode)
   || (type  TREE_CODE (type) == VECTOR_TYPE
int_size_in_bytes (type) = 8
int_size_in_bytes (type)  16))
return 64;
  else if (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
   || (type  TREE_CODE (type) == VECTOR_TYPE
int_size_in_bytes (type) = 16))
return 128;
  else if (TARGET_MACHO
 rs6000_darwin64_abi
 mode == BLKmode
type  TYPE_ALIGN (type)  64)
return 128;
  else
return PARM_BOUNDARY;
}

Note that the TARGET_MACHO + Darwin ABI case does what the 64-bit PowerPC ELF
ABI implies should be done.  It's not clear to me why that ABI is excluded.


[Bug middle-end/56417] internal compiler error: verify_gimple failed

2013-07-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56417

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 30536
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30536action=edit
gcc49-pr56417.patch

Untested fix.  Though, strlen on function address?  Ugh.


[Bug middle-end/57955] New: Uniquization of constants breaks constant alignment

2013-07-22 Thread dje at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57955

Bug ID: 57955
   Summary: Uniquization of constants breaks constant alignment
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dje at gcc dot gnu.org

A patch to improve uniquization of constants at the tree level broke alignment
of constants and vectorized copies.

gcc.target/powerpc/ppc-vector-memcpy.c


[Bug inline-asm/57950] wrong line numbers in error messages for inline assembler statements

2013-07-22 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57950

--- Comment #11 from Andreas Schwab sch...@linux-m68k.org ---
See the example in the original description.


[Bug middle-end/57955] Uniquization of constants breaks constant alignment

2013-07-22 Thread dje at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57955

David Edelsohn dje at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-07-22
 CC||bergner at gcc dot gnu.org,
   ||ebotcazou at gcc dot gnu.org,
   ||meissner at gcc dot gnu.org,
   ||pthaugen at gcc dot gnu.org
  Known to work||4.3.0, 4.4.0, 4.5.0
 Ever confirmed|0   |1
  Known to fail||4.6.0, 4.7.0, 4.8.0

--- Comment #1 from David Edelsohn dje at gcc dot gnu.org ---
Confirmed.


[Bug middle-end/57782] Wasted work in remove_path()

2013-07-22 Thread pchang9 at cs dot wisc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57782

--- Comment #1 from Po-Chun Chang pchang9 at cs dot wisc.edu ---
Patch sent to gcc-patches@

http://gcc.gnu.org/ml/gcc-patches/2013-07/msg00963.html


[Bug middle-end/57661] [4.9 Regression] ICE: SIGSEGV in verify_ssa

2013-07-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57661

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Yeah, ipa-split.c together with MEM_REF gimple_clobber_p and anonymous SSA_NAME
cause this.
ipa-split intentionally ignores clobber stmts during analysis, because they
aren't real stmts, worst case we just ignore them and/or throw them away.
If a clobber has a decl on lhs, then the decl is always present and not a
problem.  If it is a MEM_REF clobber with non-anonymous SSA_NAME, it is also
just fine, ipa-split will during the cloning of the fn to *.part.* turn those
SSA_NAMEs into SSA_NAME_IS_DEFAULT_DEF ones, and then tree-ssa-live will throw
such clobbers away as useless.  But anonymous SSA_NAMEs aren't meant to be ever
SSA_NAME_IS_DEFAULT_DEF, which causes this problem.

Perhaps ipa-split should just fix such SSA_NAMEs up (look up what anonymous
SSA_NAMEs have no SSA_NAME_DEFAULT_STMT and remove all clobbers that depend on
those and remove those SSA_NAMEs?


[Bug middle-end/57955] Uniquization of constants breaks constant alignment

2013-07-22 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57955

--- Comment #2 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
The subject is very misleading, the alignment of constants is _not_ changed at
all, otherwise many things would have been broken.  The only change pertains to
the internal alignment of initializers and cannot break anything, as it at most
trades questionable optimization patterns for a smaller data footprint.


[Bug middle-end/57661] [4.9 Regression] ICE: SIGSEGV in verify_ssa

2013-07-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57661

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
Perhaps if copy_cfg_body saved a pointer to the blocks_to_copy bitmap
temporarily into a new field in *id, the copying of clobber stmts could check
if for MEM_REF clobbers the SSA_NAME mentioned there has a definition in a
block not listed in blocks_to_copy and in that case instead of copying over the
clobber stmt just throw it on the floor.


[Bug c++/57942] g++-4.8.1 tries to instantiate wrong constructor (C++11)

2013-07-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57942

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2013-07-22
   Assignee|unassigned at gcc dot gnu.org  |paolo.carlini at oracle 
dot com
   Target Milestone|--- |4.9.0
 Ever confirmed|0   |1

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com ---
Thanks for the analysis. Mine.


[Bug c/57956] New: missing 'msgstr' section errors when building

2013-07-22 Thread townsend at astro dot wisc.edu
  gengtype-lex.c.tmp; \
  mv gengtype-lex.c.tmp gengtype-lex.c; \
}
g++ -c   -g -DIN_GCC   -fno-exceptions -fno-rtti -fasynchronous-unwind-tables
-W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -fno-common 
-DHAVE_CONFIG_H -DGENERATOR_FILE -I. -Ibuild -I../.././gcc -I../.././gcc/build
-I../.././gcc/../include -I../.././gcc/../libcpp/include
-I/home/townsend/mesasdk/include -I/home/townsend/mesasdk/include
-I/home/townsend/mesasdk/include  -I../.././gcc/../libdecnumber
-I../.././gcc/../libdecnumber/bid -I../libdecnumber
-I../.././gcc/../libbacktrace\
-DBASEVER=\4.9.0\ -DDATESTAMP=\ 20130722\ \
-DREVISION=\\ \
-DDEVPHASE=\ (experimental)\ -DPKGVERSION=\(GCC) \ \
-DBUGURL=\http://gcc.gnu.org/bugs.html\ -o build/version.o
../.././gcc/version.c
7227 translated messages, 1763 fuzzy translations, 657 untranslated messages.
/bin/sh ../.././gcc/../move-if-change tmp-gi.list gtyp-input.list
echo timestamp  s-gtyp-input
echo #define BUILDING_GCC_MAJOR `echo 4.9.0 | sed -e 's/^\([0-9]*\).*$/\1/'`
 bversion.h
TARGET_CPU_DEFAULT= \
HEADERS=config/i386/i386-protos.h config/linux-protos.h tm-preds.h
DEFINES= \
/bin/sh ../.././gcc/mkconfig.sh tm_p.h
echo #define BUILDING_GCC_MINOR `echo 4.9.0 | sed -e
's/^[0-9]*\.\([0-9]*\).*$/\1/'`  bversion.h
rm -f tmp-all-tree.def
echo #define BUILDING_GCC_PATCHLEVEL `echo 4.9.0 | sed -e
's/^[0-9]*\.[0-9]*\.\([0-9]*\)$/\1/'`  bversion.h
echo '#include tree.def'  tmp-all-tree.def
../.././gcc/po/zh_TW.po:48196:4: parse error
echo #define BUILDING_GCC_VERSION (BUILDING_GCC_MAJOR * 1000 +
BUILDING_GCC_MINOR)  bversion.h
../.././gcc/po/zh_TW.po:48196: missing `msgstr' section
../.././gcc/po/zh_TW.po:48212:4: parse error
../.././gcc/po/zh_TW.po:48212: missing `msgstr' section
../.././gcc/po/zh_TW.po:48217:4: parse error
../.././gcc/po/zh_TW.po:48217: missing `msgstr' section
../.././gcc/po/zh_TW.po:48225:4: parse error
../.././gcc/po/zh_TW.po:48225: missing `msgstr' section
../.././gcc/po/zh_TW.po:48234:4: parse error
../.././gcc/po/zh_TW.po:48234: missing `msgstr' section
../.././gcc/po/zh_TW.po:48239:4: parse error
../.././gcc/po/zh_TW.po:48239: missing `msgstr' section
../.././gcc/po/zh_TW.po:48276:4: parse error
../.././gcc/po/zh_TW.po:48276: missing `msgstr' section
../.././gcc/po/zh_TW.po:48301:4: parse error
../.././gcc/po/zh_TW.po:48301: missing `msgstr' section
../.././gcc/po/zh_TW.po:48310:4: parse error
../.././gcc/po/zh_TW.po:48310: missing `msgstr' section
../.././gcc/po/zh_TW.po:48325:4: parse error
../.././gcc/po/zh_TW.po:48325: missing `msgstr' section
/usr/bin/msgfmt: too many errors, aborting
echo 'END_OF_BASE_TREE_CODES'  tmp-all-tree.def
make[3]: *** [po/zh_TW.gmo] Error 1
make[3]: *** Waiting for unfinished jobs
echo timestamp  s-bversion
echo '#include c-family/c-common.def'  tmp-all-tree.def
ltf=../.././gcc/ada/gcc-interface/ada-tree.def ../.././gcc/cp/cp-tree.def
../.././gcc/java/java-tree.def ../.././gcc/objc/objc-tree.def; for f in $ltf;
do \
  echo #include \$f\; \
done | sed 's|../.././gcc/||'  tmp-all-tree.def
/bin/sh ../.././gcc/../move-if-change tmp-all-tree.def all-tree.def
echo timestamp  s-alltree
/bin/sh ../.././gcc/../move-if-change tmp-optionlist optionlist
echo timestamp  s-options
make[3]: Leaving directory
`/home/townsend/mesasdk-src/gcc/host-x86_64-pc-linux-gnu/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/home/townsend/mesasdk-src/gcc'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/townsend/mesasdk-src/gcc'
make: *** [all] Error 2

Configuration was:

./configure CC=gcc --build=x86_64-pc-linux-gnu --prefix=/home/townsend/mesasdk
--with-gmp=/home/townsend/mesasdk --with-mpfr=/home/townsend/mesasdk
--with-mpc=/home/townsend/mesasdk --enable-languages=c,c++,fortran
--disable-multilib

I was able to build without this issue back in April 2013; I imagine one of the
updates in the interim may have an upgraded toolset prerequisite that FC6
doesn't meet. But what, exactly, is it?


[Bug middle-end/57955] Uniquization of constants breaks constant alignment

2013-07-22 Thread dje at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57955

--- Comment #3 from David Edelsohn dje at gcc dot gnu.org ---
The change caused a testcase failure, which was not investigated. I don't
understand the comment questionable optimization patterns. Optimizing for
size should be controlled by -Os.


[Bug middle-end/57661] [4.9 Regression] ICE: SIGSEGV in verify_ssa

2013-07-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57661

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 30537
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30537action=edit
gcc49-pr57661.patch

Untested fix.


[Bug fortran/57957] New: Double free or corruption (fasttop)

2013-07-22 Thread songtao.thu at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57957

Bug ID: 57957
   Summary: Double free or corruption (fasttop)
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: songtao.thu at gmail dot com

A simple test:

! Test
program main

  implicit none

  type :: type1
real, allocatable :: anum(:)
  end type type1

  type :: type2
type(type1) :: temp
  end type type2


  type(type1) :: uKnot
  type(type2) :: a

  uKnot = type1([real  :: 0,0,0,1,2,3,4,4,5,5,5])
  a = type2(uKnot)
end

which leads to:

*** Error in `./a.out': double free or corruption (fasttop): 0x0184bf90
***
=== Backtrace: =
/lib/x86_64-linux-gnu/libc.so.6(+0x80a46)[0x7fce37214a46]
./a.out[0x400a5a]
./a.out[0x400aa0]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fce371b5ea5]
./a.out[0x400699]
=== Memory map: 
0040-00401000 r-xp  08:06 792386
/home/taosong/Dropbox/[Tao]Codes/MyFortran/Try/a.out
0060-00601000 r--p  08:06 792386
/home/taosong/Dropbox/[Tao]Codes/MyFortran/Try/a.out
00601000-00602000 rw-p 1000 08:06 792386
/home/taosong/Dropbox/[Tao]Codes/MyFortran/Try/a.out
01849000-0186a000 rw-p  00:00 0  [heap]
7fce36a3d000-7fce36a52000 r-xp  08:06 1310725   
/lib/x86_64-linux-gnu/libgcc_s.so.1
7fce36a52000-7fce36c51000 ---p 00015000 08:06 1310725   
/lib/x86_64-linux-gnu/libgcc_s.so.1
7fce36c51000-7fce36c52000 r--p 00014000 08:06 1310725   
/lib/x86_64-linux-gnu/libgcc_s.so.1
7fce36c52000-7fce36c53000 rw-p 00015000 08:06 1310725   
/lib/x86_64-linux-gnu/libgcc_s.so.1
7fce36c53000-7fce36d56000 r-xp  08:06 1314626   
/lib/x86_64-linux-gnu/libm-2.17.so
7fce36d56000-7fce36f56000 ---p 00103000 08:06 1314626   
/lib/x86_64-linux-gnu/libm-2.17.so
7fce36f56000-7fce36f57000 r--p 00103000 08:06 1314626   
/lib/x86_64-linux-gnu/libm-2.17.so
7fce36f57000-7fce36f58000 rw-p 00104000 08:06 1314626   
/lib/x86_64-linux-gnu/libm-2.17.so
7fce36f58000-7fce36f93000 r-xp  08:06 1057181   
/usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
7fce36f93000-7fce37192000 ---p 0003b000 08:06 1057181   
/usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
7fce37192000-7fce37193000 r--p 0003a000 08:06 1057181   
/usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
7fce37193000-7fce37194000 rw-p 0003b000 08:06 1057181   
/usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
7fce37194000-7fce37352000 r-xp  08:06 1314578   
/lib/x86_64-linux-gnu/libc-2.17.so
7fce37352000-7fce37551000 ---p 001be000 08:06 1314578   
/lib/x86_64-linux-gnu/libc-2.17.so
7fce37551000-7fce37555000 r--p 001bd000 08:06 1314578   
/lib/x86_64-linux-gnu/libc-2.17.so
7fce37555000-7fce37557000 rw-p 001c1000 08:06 1314578   
/lib/x86_64-linux-gnu/libc-2.17.so
7fce37557000-7fce3755c000 rw-p  00:00 0 
7fce3755c000-7fce37671000 r-xp  08:06 1048919   
/usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
7fce37671000-7fce37871000 ---p 00115000 08:06 1048919   
/usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
7fce37871000-7fce37872000 r--p 00115000 08:06 1048919   
/usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
7fce37872000-7fce37874000 rw-p 00116000 08:06 1048919   
/usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
7fce37874000-7fce37897000 r-xp  08:06 1314554   
/lib/x86_64-linux-gnu/ld-2.17.so
7fce37a77000-7fce37a7b000 rw-p  00:00 0 
7fce37a93000-7fce37a96000 rw-p  00:00 0 
7fce37a96000-7fce37a97000 r--p 00022000 08:06 1314554   
/lib/x86_64-linux-gnu/ld-2.17.so
7fce37a97000-7fce37a99000 rw-p 00023000 08:06 1314554   
/lib/x86_64-linux-gnu/ld-2.17.so
7fff3b3ac000-7fff3b3cd000 rw-p  00:00 0 
[stack]
7fff3b3fe000-7fff3b40 r-xp  00:00 0  [vdso]
ff60-ff601000 r-xp  00:00 0 
[vsyscall]

Program received signal SIGABRT: Process abort signal.

Backtrace for this error:
#0  0x7FCE37575577
#1  0x7FCE37575B7E
#2  0x7FCE371CB0AF
#3  0x7FCE371CB037
#4  0x7FCE371CE697
#5  0x7FCE372085AA
#6  0x7FCE37214A45
#7  0x400A59 in MAIN__ at main.f95:?
Aborted (core dumped)


Anyway, ifort 12.0 works well with it.
Hopefully some experts can figure it out.


[Bug middle-end/57780] Wasted work in subst_dup()

2013-07-22 Thread pchang9 at cs dot wisc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57780

--- Comment #1 from Po-Chun Chang pchang9 at cs dot wisc.edu ---
Patch sent to gcc-patches@

http://gcc.gnu.org/ml/gcc-patches/2013-07/msg00970.html


[Bug c++/57958] New: Incorrect code generation in lambda with argument of type reference to template class

2013-07-22 Thread tudorb at fb dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57958

Bug ID: 57958
   Summary: Incorrect code generation in lambda with argument of
type reference to template class
   Product: gcc
   Version: 4.7.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tudorb at fb dot com

Created attachment 30538
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30538action=edit
Source file that exhibits broken behavior

gcc (tested in 4.6.2 and 4.7.1) generates incorrect code for the fn lambda,
resulting in an extraneous destructor call.  Compiler with -O0 (this is reduced
from a more complex example involving shared_ptr which exhibited the bug with
-O3 as well).

Source attached.  The bug remains without #include cstdio and without the
call to printf, which are there just for exposition.

x86_64 disassembly (from gcc 4.7.1):

Dump of assembler code for function operator()(FooData const) const:
   0x004006ec +0:push   %rbp
   0x004006ed +1:mov%rsp,%rbp
   0x004006f0 +4:sub$0x30,%rsp
   0x004006f4 +8:mov%rdi,-0x18(%rbp)
   0x004006f8 +12:mov%rsi,-0x20(%rbp)
   0x004006fc +16:mov%rdx,-0x28(%rbp)
= 0x00400700 +20:mov-0x28(%rbp),%rdx
   0x00400704 +24:lea-0x1(%rbp),%rax
   0x00400708 +28:mov%rdx,%rsi
   0x0040070b +31:mov%rax,%rdi
   0x0040070e +34:callq  0x400794 FooData::Foo(FooData
const)
   0x00400713 +39:lea-0x1(%rbp),%rax
   0x00400717 +43:mov%rax,%rdi
   0x0040071a +46:callq  0x4007b2 FooData::~Foo()
   0x0040071f +51:leaveq
   0x00400720 +52:retq
End of assembler dump.

The bug only happens if Foo is a template.  If Foo is not a template, the code
is correct:

Dump of assembler code for function operator()(Foo const) const:
   0x004006ec +0:push   %rbp
   0x004006ed +1:mov%rsp,%rbp
   0x004006f0 +4:sub$0x20,%rsp
   0x004006f4 +8:mov%rdi,-0x8(%rbp)
   0x004006f8 +12:mov%rsi,-0x10(%rbp)
   0x004006fc +16:mov%rdx,-0x18(%rbp)
= 0x00400700 +20:mov-0x18(%rbp),%rdx
   0x00400704 +24:mov-0x8(%rbp),%rax
   0x00400708 +28:mov%rdx,%rsi
   0x0040070b +31:mov%rax,%rdi
   0x0040070e +34:callq  0x4007a6 Foo::Foo(Foo const)
   0x00400713 +39:mov-0x8(%rbp),%rax
   0x00400717 +43:leaveq
   0x00400718 +44:retq
End of assembler dump.


[Bug c++/57958] Incorrect code generation in lambda with argument of type reference to template class

2013-07-22 Thread tudorb at fb dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57958

--- Comment #1 from Tudor Bosman tudorb at fb dot com ---
Created attachment 30539
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30539action=edit
Source file that exhibits broken behavior


[Bug c++/57958] Incorrect code generation in lambda with argument of type reference to template class

2013-07-22 Thread tudorb at fb dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57958

--- Comment #2 from Tudor Bosman tudorb at fb dot com ---
g++ -v output (ignore the weird paths):

Using built-in specs.
COLLECT_GCC=l/f/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/bin/g++
COLLECT_LTO_WRAPPER=/mnt/gvfs/third-party/1ebd27fa7983fc50f525eb890ae74ebbb9336a72/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/bin/../libexec/gcc/x86_64-redhat-linux-gnu/4.7.1/lto-wrapper
Target: x86_64-redhat-linux-gnu
Configured with:
/home/engshare/third-party/src/gcc/gcc-4.7.1/gcc-4.7.1/configure
--build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu
--target=x86_64-redhat-linux-gnu
--prefix=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc
--exec-prefix=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc
--bindir=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/bin
--sbindir=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/sbin
--sysconfdir=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/etc
--datadir=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/share
--includedir=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/include
--libdir=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/lib
--libexecdir=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/libexec
--localstatedir=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/var
--sharedstatedir=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/com
--mandir=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/share/man
--infodir=/home/engshare/third-party/centos5.2-native/gcc/gcc-4.7.1/cc6c9dc/share/info
--with-gmp=/home/engshare/third-party/centos5.2-native/gmp/gmp-5.0.1/da39a3e
--with-mpfr=/home/engshare/third-party/centos5.2-native/mpfr/mpfr-3.0.0/c68f0aa
--with-mpc=/home/engshare/third-party/centos5.2-native/mpc/mpc-0.8.2/18cfc0e
--with-ppl=/home/engshare/third-party/centos5.2-native/ppl/ppl-0.10/c68f0aa
--with-cloog=/home/engshare/third-party/centos5.2-native/cloog/cloog-0.15.7/ab7be4d
--enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-languages=c,c++,fortran
--disable-libgcj --enable-linker-build-id --with-gnu-as --with-gnu-ld
--with-host-libstdcxx='-L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -lstdc++'
--disable-multilib --enable-libstdcxx-time
Thread model: posix
gcc version 4.7.1 (GCC)


[Bug fortran/57957] Double free or corruption (fasttop)

2013-07-22 Thread songtao.thu at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57957

Tao Song songtao.thu at gmail dot com changed:

   What|Removed |Added

   Severity|normal  |major


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

2013-07-22 Thread amacleod at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57926

--- Comment #7 from Andrew Macleod amacleod at redhat dot com ---
btw, that patch passes bootstrap and a new testcase based on a modified version
of the bug report test.