[Bug target/56165] Missed optimization for 'noreturn' functions

2013-02-03 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56165



--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org 2013-02-03 
09:07:57 UTC ---

(In reply to comment #9)

 1) I agree for push rbx seves reg. But sub rsp,8 is completely trash,

 because stack frame do not used at all, not for save reg, nor anything other.



You're wrong.  That is to maintain the ABI, which for x86_64 says that the

stack is 16-byte aligned.  Consider e.g. the noreturn function using SSE

instructions, without that subq $8, %rsp the stack in the noreturn function

would be not properly aligned to 16-bytes and any movdqa and similar insns on

stack slots would crash.


[Bug c/56180] Strange behaviour with optimization (using KR C)

2013-02-03 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56180



--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2013-02-03 
09:22:05 UTC ---

When you were calling ungetc with uninitialized char, that is invoking

undefined behavior, anything can happen at that point.


[Bug middle-end/56188] New: [4.8 regression] FAIL: gcc.dg/ipa/ipa-pta-10.c scan-ipa-dump pta ESCAPED = { (ESCAPED )?(NONLOCAL )?}

2013-02-03 Thread sch...@linux-m68k.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56188



 Bug #: 56188

   Summary: [4.8 regression] FAIL: gcc.dg/ipa/ipa-pta-10.c

scan-ipa-dump pta ESCAPED = { (ESCAPED )?(NONLOCAL

)?}

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: middle-end

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: sch...@linux-m68k.org

Target: powerpc-*-*





Only fails with -m32.



Executing on host: /daten/gcc/gcc-20130202/Build/gcc/xgcc

-B/daten/gcc/gcc-20130202/Build/gcc/

/daten/gcc/gcc-20130202/gcc/testsuite/gcc.dg/ipa/ipa-pta-10.c 

-fno-diagnostics-show-caret   -O2 -fipa-pta -fdump-ipa-pta-details  -lm   -m32

-o ./ipa-pta-10.exe(timeout = 300)

spawn /daten/gcc/gcc-20130202/Build/gcc/xgcc

-B/daten/gcc/gcc-20130202/Build/gcc/

/daten/gcc/gcc-20130202/gcc/testsuite/gcc.dg/ipa/ipa-pta-10.c

-fno-diagnostics-show-caret -O2 -fipa-pta -fdump-ipa-pta-details -lm -m32 -o

./ipa-pta-10.exe

PASS: gcc.dg/ipa/ipa-pta-10.c (test for excess errors)

Setting LD_LIBRARY_PATH to

:/daten/gcc/gcc-20130202/Build/gcc:/daten/gcc/gcc-20130202/Build/gcc/64:/daten/gcc/gcc-20130202/Build/powerpc64-linux/./libsanitizer/asan/.libs::/daten/gcc/gcc-20130202/Build/gcc:/daten/gcc/gcc-20130202/Build/gcc/64:/daten/gcc/gcc-20130202/Build/powerpc64-linux/./libsanitizer/asan/.libs:/daten/gcc/gcc-20130202/Build/powerpc64-linux/libstdc++-v3/src/.libs:/daten/gcc/gcc-20130202/Build/powerpc64-linux/libmudflap/.libs:/daten/gcc/gcc-20130202/Build/powerpc64-linux/libsanitizer/.libs:/daten/gcc/gcc-20130202/Build/powerpc64-linux/libssp/.libs:/daten/gcc/gcc-20130202/Build/powerpc64-linux/libgomp/.libs:/daten/gcc/gcc-20130202/Build/powerpc64-linux/libitm/.libs:/daten/gcc/gcc-20130202/Build/powerpc64-linux/libatomic/.libs:/daten/gcc/gcc-20130202/Build/./gcc:/daten/gcc/gcc-20130202/Build/./prev-gcc

spawn [open ...]

PASS: gcc.dg/ipa/ipa-pta-10.c execution test

FAIL: gcc.dg/ipa/ipa-pta-10.c scan-ipa-dump pta ESCAPED = { (ESCAPED

)?(NONLOCAL )?}



$ grep ^ESCAPED ipa-pta-10.c.053i.pta

ESCAPED = *ESCAPED

ESCAPED = ESCAPED + UNKNOWN

ESCAPED = { NULL ESCAPED NONLOCAL foo.varargs i }


[Bug middle-end/56188] [4.8 regression] FAIL: gcc.dg/ipa/ipa-pta-10.c scan-ipa-dump pta ESCAPED = { (ESCAPED )?(NONLOCAL )?}

2013-02-03 Thread sch...@linux-m68k.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56188



--- Comment #1 from Andreas Schwab sch...@linux-m68k.org 2013-02-03 11:52:12 
UTC ---

Created attachment 29341

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29341

ipa-pta-10.c.053i.pta


[Bug c++/56189] New: Infinite recursion with noexcept when instantiating function template

2013-02-03 Thread belz at kolumbus dot fi


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56189



 Bug #: 56189

   Summary: Infinite recursion with noexcept when instantiating

function template

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: b...@kolumbus.fi





The following code:



namespace test {

   templatetypename T

   void tt(T, T);

}



templatetypename T

void tt(T a, T b) noexcept(noexcept(::test::tt(a,b)));



templatetypename T

void foo(T x, T y) noexcept(noexcept(tt(x, y)));



int main()

{

int i;

foo(i,i);

}



fails to compile with error:



Compilation finished with errors:

source.cpp:11:47: error: template instantiation depth exceeds maximum of 900

(use -ftemplate-depth= to increase the maximum) substituting 'templateclass T

void tt(T, T) [with T = missing]'

 void foo(T x, T y) noexcept(noexcept(tt(x, y)));

   ^

source.cpp:11:47:   recursively required from 'void tt(T, T) [with T = int]'

source.cpp:11:47:   required from 'void foo(T, T) [with T = int]'

source.cpp:16:12:   required from here



source.cpp:11:47: error: no matching function for call to 'tt(int, int)'

source.cpp:11:47: note: candidate is:

source.cpp:8:6: note: templateclass T void tt(T, T)

 void tt(T a, T b) noexcept(noexcept(::test::tt(a,b)));

  ^

source.cpp:8:6: note:   substitution of deduced template arguments resulted in

errors seen above


[Bug target/56165] Missed optimization for 'noreturn' functions

2013-02-03 Thread akobets at mail dot ru


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56165



--- Comment #11 from Alexander Kobets akobets at mail dot ru 2013-02-03 
12:39:00 UTC ---

(In reply to comment #10)

 You're wrong.  That is to maintain the ABI, which for x86_64 says that the

 stack is 16-byte aligned.  Consider e.g. the noreturn function using SSE

 instructions, without that subq $8, %rsp the stack in the noreturn function

 would be not properly aligned to 16-bytes and any movdqa and similar insns on

 stack slots would crash.



See carefully my compile keys (from first message):

x86_64-linux-gnu-gcc -c -Wall -Wno-attributes -save-temps -fverbose-asm

-masm=intel -march=core2 -mcmodel=large -mno-mmx -mno-sse -O1 -fno-rtti

-fno-default-inline -fomit-frame-pointer -falign-functions=16

-foptimize-sibling-calls -ffreestanding -fno-stack-protector --no-exceptions



There is:

-mno-mmx

-mno-sse

and in the long run

-fomit-frame-pointer



I do not need your charge with your injected code at all. Please understand me.


[Bug target/56165] Missed optimization for 'noreturn' functions

2013-02-03 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56165



--- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org 2013-02-03 
13:07:35 UTC ---

(In reply to comment #11)

 (In reply to comment #10)

  You're wrong.  That is to maintain the ABI, which for x86_64 says that the

  stack is 16-byte aligned.  Consider e.g. the noreturn function using SSE

  instructions, without that subq $8, %rsp the stack in the noreturn function

  would be not properly aligned to 16-bytes and any movdqa and similar insns 
  on

  stack slots would crash.

 

 See carefully my compile keys (from first message):

 x86_64-linux-gnu-gcc -c -Wall -Wno-attributes -save-temps -fverbose-asm

 -masm=intel -march=core2 -mcmodel=large -mno-mmx -mno-sse -O1 -fno-rtti

 -fno-default-inline -fomit-frame-pointer -falign-functions=16

 -foptimize-sibling-calls -ffreestanding -fno-stack-protector --no-exceptions

 

 There is:

 -mno-mmx

 -mno-sse

 and in the long run

 -fomit-frame-pointer

 

 I do not need your charge with your injected code at all. Please understand 
 me.



That is completely irrelevant.  The noreturn function is usually defined in

some other CU, so you don't know what compiler flags it will be compiled with,

and -mpreferred-stack-boundary=4 (i.e. 16 bytes alignment) is for x86_64 the

smallest supported alignment.  Even if you don't use SSE etc., the compiler is

allowed and does assume the 16-byte alignment of stack pointer in many places.

Note -mcmodel=large in your flags is much bigger slowdown than what you are

complaining about here.


[Bug fortran/50627] [4.6/4.7 Regression] Error recovery: ICE in gfc_free_namespace after diagnosing missing end of construct

2013-02-03 Thread tkoenig at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50627



--- Comment #10 from Thomas Koenig tkoenig at gcc dot gnu.org 2013-02-03 
13:15:24 UTC ---

Author: tkoenig

Date: Sun Feb  3 13:15:18 2013

New Revision: 195695



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195695

Log:

2013-02-03  Thomas Koenig  tkoe...@gcc.gnu.org



Backport from trunk

PR fortran/50627

PR fortran/56054

* decl.c (gfc_match_end):  Remove half-ready namespace

from parent if the end of a block is missing.

* parse.c (parse_module):  Do not put namespace into

gsymbol on error.



2013-02-03  Thomas Koenig  tkoe...@gcc.gnu.org



Backport from trunk

PR fortran/50627

PR fortran/56054

* gfortran.dg/block_12.f90:  New test.

* gfortran.dg/module_error_1.f90:  New test.





Added:

branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/block_12.f90

branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/module_error_1.f90

Modified:

branches/gcc-4_6-branch/gcc/fortran/ChangeLog

branches/gcc-4_6-branch/gcc/fortran/decl.c

branches/gcc-4_6-branch/gcc/fortran/parse.c

branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug fortran/56054] [4.6/4.7/4.8 Regression] f951: internal compiler error: in gfc_free_namespace, at fortran/symbol.c:3337

2013-02-03 Thread tkoenig at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56054



--- Comment #7 from Thomas Koenig tkoenig at gcc dot gnu.org 2013-02-03 
13:15:24 UTC ---

Author: tkoenig

Date: Sun Feb  3 13:15:18 2013

New Revision: 195695



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195695

Log:

2013-02-03  Thomas Koenig  tkoe...@gcc.gnu.org



Backport from trunk

PR fortran/50627

PR fortran/56054

* decl.c (gfc_match_end):  Remove half-ready namespace

from parent if the end of a block is missing.

* parse.c (parse_module):  Do not put namespace into

gsymbol on error.



2013-02-03  Thomas Koenig  tkoe...@gcc.gnu.org



Backport from trunk

PR fortran/50627

PR fortran/56054

* gfortran.dg/block_12.f90:  New test.

* gfortran.dg/module_error_1.f90:  New test.





Added:

branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/block_12.f90

branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/module_error_1.f90

Modified:

branches/gcc-4_6-branch/gcc/fortran/ChangeLog

branches/gcc-4_6-branch/gcc/fortran/decl.c

branches/gcc-4_6-branch/gcc/fortran/parse.c

branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug fortran/50627] [4.6/4.7 Regression] Error recovery: ICE in gfc_free_namespace after diagnosing missing end of construct

2013-02-03 Thread tkoenig at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50627



Thomas Koenig tkoenig at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #11 from Thomas Koenig tkoenig at gcc dot gnu.org 2013-02-03 
13:16:30 UTC ---

Fixed on all affected and supported branches, closing.


[Bug target/56165] Missed optimization for 'noreturn' functions

2013-02-03 Thread akobets at mail dot ru


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56165



--- Comment #13 from Alexander Kobets akobets at mail dot ru 2013-02-03 
13:48:15 UTC ---

(In reply to comment #12)

 That is completely irrelevant.  The noreturn function is usually defined in

 some other CU, so you don't know what compiler flags it will be compiled with,

 and -mpreferred-stack-boundary=4 (i.e. 16 bytes alignment) is for x86_64 the

 smallest supported alignment.



Now I tested with -mpreferred-stack-boundary=4

it has no effect.

-mpreferred-stack-boundary=4 do not worked, it is fake.



 Even if you don't use SSE etc., the compiler is

 allowed and does assume the 16-byte alignment of stack pointer in many places.



I try to use some options for explain to compolers what I want.



 Note -mcmodel=large in your flags is much bigger slowdown than what you are

 complaining about here.



I will take it in account. But I need mainly the unchanged stack pointer at

function run.


[Bug c++/56190] New: GCC fails deducing a void(*)(int, float, double) to a void(*)(T..., float, double) with T={int}

2013-02-03 Thread schaub.johannes at googlemail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56190



 Bug #: 56190

   Summary: GCC fails deducing a void(*)(int, float, double) to

a void(*)(T..., float, double) with T={int}

Classification: Unclassified

   Product: gcc

   Version: 4.7.3

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: schaub.johan...@googlemail.com





From

http://stackoverflow.com/questions/14664589/variadic-template-code-compiles-on-gcc-4-6-but-not-on-clang-or-gcc-4-7

:



class Test {

public:

template class... A2 void print (void(*function)(A2..., float, double)) {



}

};



void test_print (int a, float b, double c) { }



int main () {

Test test;

test.printint (test_print);

}



Fails with



source.cpp:14:33: note: candidate is:

source.cpp:3:33: note: templateclass ... A2 void Test::print(void (*)(A2 ...,

float, double))

source.cpp:3:33: note:   template argument deduction/substitution failed:

source.cpp:14:33: note:   mismatched types 'float' and 'int'



GCC does apparently not substitute the explicitly specified arguments of A2

before attempting the argument deduction.


[Bug c++/56191] New: Destructor affects noexcept detection

2013-02-03 Thread antoshkka at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56191



 Bug #: 56191

   Summary: Destructor affects noexcept detection

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: antosh...@gmail.com





GCC 4.7.2 incorrectly detects noexcept specification in case of move

constructor.

Here is an example:



struct descriptor_owner_movable {

descriptor_owner_movable(descriptor_owner_movable ) noexcept {}



// Without destructor it compiles correctly

~descriptor_owner_movable() {}

};



descriptor_owner_movable declval() noexcept;



int main() {

static_assert(

noexcept(descriptor_owner_movable(declval()))

, But it is nothrow!);

return 0;

}


[Bug target/56165] Missed optimization for 'noreturn' functions

2013-02-03 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56165



--- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org 2013-02-03 
14:57:19 UTC ---

Not fake, but the default and smallest value, i.e. for x86_64 ABI we don't

allow lowering the value to smaller than ABI required alignments.  Only for

32-bit i?86 code it is allowed to lower it from 16 down to 4 bytes (the

argument to -mpreferred-stack-boundary is N where (1  N) is the alignment).


[Bug sanitizer/55617] static constructors are not being instrumented correctly on darwin

2013-02-03 Thread howarth at nitro dot med.uc.edu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55617



--- Comment #47 from Jack Howarth howarth at nitro dot med.uc.edu 2013-02-03 
15:16:50 UTC ---

posted proposed patch and regression testresults at...



http://gcc.gnu.org/ml/gcc-patches/2013-02/msg00055.html

http://gcc.gnu.org/ml/gcc-testresults/2013-02/msg00251.html


[Bug c++/56192] New: global operator new() vs member operator new()

2013-02-03 Thread tsoae at mail dot ru


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56192



 Bug #: 56192

   Summary: global operator new() vs member operator new()

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: ts...@mail.ru





g++ 4.8.0 20130127 fails to compile the following code



#include cstddef



template class

struct A {};



template class T

Adecltype(new T) f(int);



template class T

Adecltype(::new T) g(int);



struct X

{

void *operator new(std::size_t n, void *);

};



int main()

{

using type = decltype(gX(0));

}



=

Using built-in specs.

COLLECT_GCC=bin/g++

COLLECT_LTO_WRAPPER=libexec/gcc/x86_64-linux-gnu/4.8.0/lto-wrapper

Target: x86_64-linux-gnu

Configured with: ../gcc-4.8-20130127/configure

--prefix=/mnt/compiles/toolchains/cpp/4.8.0 --disable-nls

--enable-languages=c,c++,go,fortran --enable-shared --enable-linker-build-id

--with-system-zlib --without-included-gettext --enable-threads=posix

--enable-clocale=gnu --enable-libstdcxx-time=yes --enable-gnu-unique-object

--enable-plugin --enable-objc-gc --disable-werror --with-tune=generic

--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu

--target=x86_64-linux-gnu --disable-bootstrap --disable-multilib

--disable-shared --enable-static

Thread model: posix

gcc version 4.8.0 20130127 (experimental) (GCC) 

COLLECT_GCC_OPTIONS='-std=c++11' '-v' '-o' 'program' '-mtune=generic'

'-march=x86-64'

 libexec/gcc/x86_64-linux-gnu/4.8.0/cc1plus -quiet -v -imultilib . -imultiarch

x86_64-linux-gnu -D_GNU_SOURCE source.cpp -quiet -dumpbase source.cpp

-mtune=generic -march=x86-64 -auxbase source -std=c++11 -version -o

/tmp/ccKToF0B.s

GNU C++ (GCC) version 4.8.0 20130127 (experimental) (x86_64-linux-gnu)

compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3,

MPC version 0.9

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu

ignoring nonexistent directory

lib/gcc/x86_64-linux-gnu/4.8.0/../../../../x86_64-linux-gnu/include

#include ... search starts here:

#include ... search starts here:

 lib/gcc/x86_64-linux-gnu/4.8.0/../../../../include/c++/4.8.0



lib/gcc/x86_64-linux-gnu/4.8.0/../../../../include/c++/4.8.0/x86_64-linux-gnu/.

 lib/gcc/x86_64-linux-gnu/4.8.0/../../../../include/c++/4.8.0/backward

 lib/gcc/x86_64-linux-gnu/4.8.0/include

 /usr/local/include

 include

 lib/gcc/x86_64-linux-gnu/4.8.0/include-fixed

 x86_64-linux-gnu

 /usr/include

End of search list.

GNU C++ (GCC) version 4.8.0 20130127 (experimental) (x86_64-linux-gnu)

compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3,

MPC version 0.9

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

Compiler executable checksum: c50b4a9e751f2a9ab933b25f6962a9bf

source.cpp: In function 'int main()':

source.cpp:19:33: error: no matching function for call to 'g(int)'

 using type = decltype(gX(0));



 ^

source.cpp:19:33: note: candidate is:

source.cpp:10:26: note: templateclass T Adecltype (new T) g(int)

 Adecltype(::new T) g(int);



  ^

source.cpp:10:26: note:   template argument deduction/substitution failed:

source.cpp: In substitution of 'templateclass T Adecltype (new T) g(int)

[with T = missing]':

source.cpp:19:33:   required from here

source.cpp:10:26: error: no matching function for call to 'X::operator

new(sizetype)'

source.cpp:10:26: note: candidate is:

source.cpp:14:11: note: static void* X::operator new(std::size_t, void*)

 void *operator new(std::size_t n, void *);



   ^

source.cpp:14:11: note:   candidate expects 2 arguments, 1 provided

source.cpp:19:33: error: no matching function for call to 'g(int)'

 using type = decltype(gX(0));



 ^

source.cpp:19:33: note: candidate is:

source.cpp:10:26: note: templateclass T Adecltype (new T) g(int)

 Adecltype(::new T) g(int);



  ^

source.cpp:10:26: note:   template argument deduction/substitution failed:

source.cpp: In substitution of 'templateclass T Adecltype (new T) g(int)

[with T = missing]':

source.cpp:19:33:   required from here

source.cpp:10:26: error: no matching function for call to 'X::operator

new(sizetype)'

source.cpp:10:26: note: candidate is:

source.cpp:14:11: note: static void* X::operator new(std::size_t, void*)

 void *operator new(std::size_t n, void *);



   ^

source.cpp:14:11: note:   candidate expects 2 arguments, 1 provided

=



The 

[Bug middle-end/56185] [4.7 Regression] ICE for Arithmetic exception with -O2 and -fgraphite

2013-02-03 Thread daniel.f.starke at freenet dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56185



--- Comment #1 from Daniel Starke daniel.f.starke at freenet dot de 
2013-02-03 16:24:56 UTC ---

This issue does not appear with isl backend as in the configuration below.

However, I still need ppl to build gcc.



Using built-in specs.

COLLECT_GCC=D:\Programme\msys\mingw64\bin\x86_64-w64-mingw32-gcc.exe

COLLECT_LTO_WRAPPER=d:/programme/msys/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/4.7.2/lto-wrapper.exe

Target: x86_64-w64-mingw32

Configured with: ../../src/gcc-4.7.2/configure --enable-languages=c,c++

--disable-nls --disable-shared --enable-static --enable-lto --enable-libgomp

--with-dwarf2 --disable-win32-registry --enable-version-specific-runtime-libs

--prefix=/mingw64 --with-sysroot=/mingw64 --target=x86_64-w64-mingw32

--enable-targets=all --with-gmp=/usr/new-cross-gcc/lib/gmp-5.0.2

--with-mpfr=/usr/new-cross-gcc/lib/mpfr-2.4.2

--with-mpc=/usr/new-cross-gcc/lib/mpc-0.9

--with-ppl=/usr/new-cross-gcc/lib/ppl-0.11.2

--with-cloog=/usr/new-cross-gcc/lib/cloog-0.18.0

--with-host-libstdcxx='-lstdc++ -lsupc++' --disable-cloog-version-check

--enable-cloog-backend=isl

Thread model: win32

gcc version 4.7.2 (GCC)


[Bug libstdc++/56193] New: ios_base should replace operator void* with explicit operator bool in C++11 onwards.

2013-02-03 Thread 3dw4rd at verizon dot net


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56193



 Bug #: 56193

   Summary: ios_base should replace operator void* with explicit

operator bool in C++11 onwards.

Classification: Unclassified

   Product: gcc

   Version: unknown

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: libstdc++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: 3dw...@verizon.net





As pointed out on SO, g++ still compiles:



std::cout  std::cout



In C++11 the stream testing operator was changed from:

  operator void*() const;

to:

  explicit operator bool() const;



A quick patch is being tested now.

The target is 4.9 even though it is simple.


[Bug testsuite/56194] New: FAIL: g++.dg/init/const9.C -std=c++98 scan-assembler-not rodata

2013-02-03 Thread danglin at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56194



 Bug #: 56194

   Summary: FAIL: g++.dg/init/const9.C -std=c++98

scan-assembler-not rodata

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: testsuite

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: dang...@gcc.gnu.org

  Host: hppa-unknown-linux-gnu

Target: hppa-unknown-linux-gnu

 Build: hppa-unknown-linux-gnu





Assembler output contains:



.section.rodata

.align 4

.LC0:

.word   P%_ZN3fooD1Ev



This is a function descriptor.  Think test needs to be xfailed on

this target.


[Bug tree-optimization/56195] New: Error: incorrect register `%rdi' used with `l' suffix (at -O2)

2013-02-03 Thread antoine.balestrat at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56195



 Bug #: 56195

   Summary: Error: incorrect register `%rdi' used with `l' suffix

(at -O2)

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: tree-optimization

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: antoine.balest...@gmail.com





Using GCC 4.8.0 as of 20130203 :



$ xgcc -v

Using built-in specs.

COLLECT_GCC=/home/merkil/gcc/dist/bin/gcc

COLLECT_LTO_WRAPPER=/home/merkil/gcc/dist/libexec/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper

Target: x86_64-unknown-linux-gnu

Configured with: ../srcdir/configure CFLAGS='-O2 -pipe' CXXFLAGS='-O2 -pipe'

--enable-languages=c --prefix=/home/merkil/gcc/dist

Thread model: posix

gcc version 4.8.0 20130203 (experimental) (GCC) 



$ cat reg.c

int i, a, t, b, c, d, e, f, j, *h;



void fn(void)

{

if(b)

{

int *p, *q;

char g;



if(f++)

for(;; e++);

lbl:

for(b = 0; b  2; b++)

t /= d + 1 ? : i || a  c  (d = f) ? : 1 | (j = 2);



*p = g = *q ^ c != a ^ *p;



if(!e)

{

q = p;

goto lbl;

}

}



if(h++)

goto lbl;

}



$ xgcc -O2 reg.c

{standard input}: Assembler messages:

{standard input}:112: Error: incorrect register `%rdi' used with `l' suffix


[Bug ada/56196] New: Assertion failure on aspect clause

2013-02-03 Thread simon at pushface dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56196



 Bug #: 56196

   Summary: Assertion failure on aspect clause

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: ada

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: si...@pushface.org





Created attachment 29342

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29342

Reproducer



Compiling the attached union.ads results in the bug box below.



The code compiles with GNAT GPL 2012, though I think it shouldn't because this

is a non-confirming representation aspect following freeze (ARM 13.1(10)).



gcc -c -gnatwa -gnat12 -gnatd.n union.ads

/opt/gcc-4.8-195682/lib/gcc/x86_64-apple-darwin12/4.8.0/adainclude/system.ads

union.ads

+===GNAT BUG DETECTED==+

| 4.8.0 20130202 (experimental) [trunk revision 195682] (x86_64-apple-darwin12)

|

| Assert_Failure atree.adb:903 |

| Error detected at union.ads:1:1  |

| Please submit a bug report; see http://gcc.gnu.org/bugs.html.|

| Use a subject line meaningful to you and us to track the bug.|

| Include the entire contents of this bug box in the report.   |

| Include the exact gcc or gnatmake command that you entered.  |

| Also include sources listed below in gnatchop format |

| (concatenated together with no headers between files).   |

+==+



Please include these source files with error report

Note that list may not be accurate in some cases,

so please double check that the problem can still

be reproduced with the set of files listed.

Consider also -gnatd.n switch (see debug.adb).



union.ads



compilation abandoned

gnatmake: union.ads compilation error


[Bug libstdc++/56193] ios_base should replace operator void* with explicit operator bool in C++11 onwards.

2013-02-03 Thread redi at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56193



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-02-03

   Target Milestone|--- |4.9.0

 Ever Confirmed|0   |1


[Bug c++/56191] Destructor affects noexcept detection

2013-02-03 Thread redi at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56191



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||FIXED

   Target Milestone|--- |4.8.0



--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2013-02-03 
17:02:59 UTC ---

It's the correct behaviour that the destructor affects noexcept detection,

because the operand expression creates *and* destroys temporary objects.  G++

4.7 does not apply the rule that destructors are noexcept, so you need to add

an explicit noexcept specification on the destructor.  GCC 4.8 correctly makes

the destructor noexcept as required by C++11.


[Bug libstdc++/56193] ios_base should replace operator void* with explicit operator bool in C++11 onwards.

2013-02-03 Thread 3dw4rd at verizon dot net


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56193



--- Comment #1 from Ed Smith-Rowland 3dw4rd at verizon dot net 2013-02-03 
17:40:16 UTC ---

Created attachment 29343

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29343

Patch including testcase.



Here is a small patch.  I'm not ure the bast place to put the testcase.



Testing is underway.



The change builds and fails to compile the testcase as expected on

x86_64-unknown-linux.


[Bug tree-optimization/56195] [4.8 Regression] Error: incorrect register `%rdi' used with `l' suffix (at -O2)

2013-02-03 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56195



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org,

   ||vmakarov at gcc dot gnu.org

   Target Milestone|--- |4.8.0

Summary|Error: incorrect register   |[4.8 Regression] Error:

   |`%rdi' used with `l' suffix |incorrect register `%rdi'

   |(at -O2)|used with `l' suffix (at

   ||-O2)



--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2013-02-03 
21:01:59 UTC ---

Started with LRA merge (

http://gcc.gnu.org/viewcvs?root=gccview=revrev=192719 ).

(define_insn *cmpmode_1

  [(set (reg FLAGS_REG)

(compare (match_operand:SWI 0 nonimmediate_operand rm,r)

 (match_operand:SWI 1 general_operand ri,rm)))]

  ix86_match_ccmode (insn, CCmode)

  cmp{imodesuffix}\t{%1, %0|%0, %1}

  [(set_attr type icmp)

   (set_attr mode MODE)])

In *.ira dump the insn looks still correct:

(insn 90 87 91 22 (set (reg:CCGC 17 flags)

(compare:CCGC (reg:SI 118 [ D.1797 ])

(mem:SI (reg/v/f:DI 59 [ q ]) [2 *q_1+0 S4 A32]))) pr56195.c:17 7

{*cmpsi_1}

 (nil))

but in *.reload dump:

(insn 90 256 91 22 (set (reg:CCGC 17 flags)

(compare:CCGC (reg:DI 5 di [137])

(mem:SI (reg:DI 5 di [137]) [2 *q_1+0 S4 A32]))) pr56195.c:17 7

{*cmpsi_1}

 (expr_list:REG_DEAD (reg:DI 5 di [137])

(nil)))



so I wonder how could it match that way and survive till end of compilation.


[Bug c++/56191] Destructor affects noexcept detection

2013-02-03 Thread redi at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56191



--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2013-02-03 
21:05:17 UTC ---

N.B. you don't need to CC yourself on bugs, the reporter always gets sent

changes to the bug


[Bug target/56165] Missed optimization for 'noreturn' functions

2013-02-03 Thread akobets at mail dot ru


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56165



--- Comment #15 from Alexander Kobets akobets at mail dot ru 2013-02-03 
21:56:41 UTC ---

(In reply to comment #14)

 Not fake, but the default and smallest value, i.e. for x86_64 ABI we don't

 allow lowering the value to smaller than ABI required alignments.  Only for

 32-bit i?86 code it is allowed to lower it from 16 down to 4 bytes (the

 argument to -mpreferred-stack-boundary is N where (1  N) is the alignment).



But no error is printed when I use -mpreferred-stack-boundary=4 on 64-bit CPU.

Only when defined 0, then printed:

error: -mpreferred-stack-boundary=0 is not between 4 and 12

while 4 is realy not worked.


[Bug target/56197] New: [SH] Use calculated jump address instead of using a jump table

2013-02-03 Thread olegendo at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56197



 Bug #: 56197

   Summary: [SH] Use calculated jump address instead of using a

jump table

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: target

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: olege...@gcc.gnu.org

Target: sh*-*-*





I ran across this one while checking out PR 55146.

If there are a lot of cases in a switch and the length of the case blocks is

more or less constant, it can be beneficial to calculate the jump address and

eliminate the jump table.  For example, code such as



int

test (int arg)

{

  int rc;

  switch (arg)

{

case 0:

  asm (nop\n\tnop\n\t

   mov r4,%0

   : =r (rc)

   : r (arg));

  break;

case 1:

  asm (nop\n\tnop\n\t

   mov r5,%0

   : =r (rc)

   : r (arg));

  break;

case 2:

  asm (nop\n\tnop\n\t

   mov r6,%0

   : =r (rc)

   : r (arg));



[...]



case 9:

  asm (nop\n\tnop\n\t

   mov r7,%0

   : =r (rc)

   : r (arg));

  break;

}

  return rc;

}





Compiled with -O2 results in:



_test:

mov #9,r1

cmp/hi  r1,r4

bt  .L2

mova.L4,r0

mov.b   @(r0,r4),r4

add r0,r4

jmp @r4

nop

.align 2

.L4:

.byte   .L3-.L4

.byte   .L5-.L4

.byte   .L6-.L4

.byte   .L7-.L4

.byte   .L8-.L4

.byte   .L9-.L4

.byte   .L10-.L4

.byte   .L11-.L4

.byte   .L12-.L4

.byte   .L13-.L4

.align 1

.L13:

mov #9,r0

nop

nop

mov r7,r0

.align 2

.L2:

rts

nop

.align 1

.L12:

mov #8,r0



[...]



For a lot of cases, the jump table might become large and is likely to cause

data cache misses.  The following might be better in that case (assuming that

the length of each case block is 16 bytes):



mov #9,r1

cmp/hi  r1,r4

bt  .L2

shll2   r4

shll2   r4

add #.Lcase_0 - .Lcase_default,r4

braf@r4

nop



.Lcase_default:

rts

nop



.align 4

.Lcase_0:

mov #0,r0

nop

nop

mov r4,r0

rts

nop



.align 4

.Lcase_1:



[...]



.align 4

.Lcase_9:

mov #0,r0

nop

nop

mov r7,r0

rts

nop



However, this requires the jump table to be sorted in ascending order and the

length of the case blocks should not vary too much.



Maybe this optimization could also be beneficial on other targets than SH.  At

least PR 43462 looks somewhat related to it.


[Bug target/56165] Missed optimization for 'noreturn' functions

2013-02-03 Thread akobets at mail dot ru


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56165



--- Comment #16 from Alexander Kobets akobets at mail dot ru 2013-02-03 
22:02:06 UTC ---

(In reply to comment #15)

 But no error is printed when I use -mpreferred-stack-boundary=4 on 64-bit CPU.

 Only when defined 0, then printed:

 error: -mpreferred-stack-boundary=0 is not between 4 and 12

 while 4 is realy not worked.



Sorry, I cont this parameter in bytes, while it is power of 2. Now all clear to

me.


[Bug target/52480] SH Target: SH4A movua.l does not work for big endian

2013-02-03 Thread olegendo at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52480



--- Comment #8 from Oleg Endo olegendo at gcc dot gnu.org 2013-02-03 22:29:46 
UTC ---

(In reply to comment #7)

 (In reply to comment #6)

  As of rev 195493 the test case for this PR is failing again.

 

 In fact, now it doesn't work for little and big endian.



This is because the standard name patterns insv, extv, extzv got deprecated.

The new replacements are: extvm, extvmisalignm, extzvm, extzvmisalignm


[Bug treelang/55269] Rename tree_node complex field to avoid conflict with C99 complex type

2013-02-03 Thread peter at colberg dot org

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55269

peter at colberg dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #2 from peter at colberg dot org 2013-02-03 22:51:29 UTC ---
Closing this bug since it no longer applies to GCC ≥ 4.8.


[Bug target/55108] bad compile-time evaluation of members of initialized union

2013-02-03 Thread mikpe at it dot uu.se


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55108



--- Comment #4 from Mikael Pettersson mikpe at it dot uu.se 2013-02-03 
23:24:37 UTC ---

On armv5tel-linux-gnueabi this bug is reproducible with gcc-4.6 but not with

gcc-4.7 or 4.8.



The wrong-code was made latent for 4.7.0 by r179556 aka PR38885, a

missed-optimization fix.  Bisecting with that fix disabled (a simple #if 0 /

#endif wrapper around the new code) showed that the wrong-code was fixed

properly for 4.8 by r187648 aka PR53352, a fix for incorrect CSE of unions on

ARM.



Backporting r187648 to 4.6 fixes this PR's test case with 4.6 on armv5tel. 

Anyone backporting r187648 to 4.7 or 4.6 should also backport the test case

fixup in r187654.


[Bug target/55108] bad compile-time evaluation of members of initialized union

2013-02-03 Thread pinskia at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55108



Andrew Pinski pinskia at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||DUPLICATE



--- Comment #5 from Andrew Pinski pinskia at gcc dot gnu.org 2013-02-04 
00:05:48 UTC ---

dup then .



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


[Bug rtl-optimization/53352] Incorrect CSE optimization on RTL expressions with a paradoxical subreg

2013-02-03 Thread pinskia at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53352



Andrew Pinski pinskia at gcc dot gnu.org changed:



   What|Removed |Added



 CC||acn1 at cam dot ac.uk



--- Comment #13 from Andrew Pinski pinskia at gcc dot gnu.org 2013-02-04 
00:05:48 UTC ---

*** Bug 55108 has been marked as a duplicate of this bug. ***


[Bug ada/51483] [4.7/4.8 regression] cstand.adb:Register_Float_Type makes invalid assumptions about FP representation

2013-02-03 Thread cynt6007 at vandals dot uidaho.edu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51483



cynt6007 at vandals dot uidaho.edu changed:



   What|Removed |Added



 CC||cynt6007 at vandals dot

   ||uidaho.edu



--- Comment #14 from cynt6007 at vandals dot uidaho.edu 2013-02-04 00:07:31 UTC 
---

Can't build Ada/gnat-4.7 on Ubuntu 12.10 because of SPARK issue, although there

are long and complicated directions for how to build Ada/gnat-4.7 on Ubuntu,

some work and some don't.  Per GNU standards, the build system should be

changed so that it's possible to build gnat-4.7 with gnat-4.6. Also, if a

native compiler of the same version number must be built to build gnat, then

the build system should (but fails to) automatically build the native version

first, then use that to build the cross compiler.


[Bug fortran/54932] Invalid loop code generated by Fortran FE for loops with bounds in HIGH(type)

2013-02-03 Thread hubicka at ucw dot cz


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54932



--- Comment #13 from Jan Hubicka hubicka at ucw dot cz 2013-02-04 00:16:44 
UTC ---

 

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54932

 

 --- Comment #12 from Dominique d'Humieres dominiq at lps dot ens.fr 
 2013-02-01 13:59:11 UTC ---

 (In reply to comment #11)

Thus, I close the bug as INVALID.

   ... in wich case could you, please, update the testcase to be valid and 
   remove

   the XFAIL I introduced?

 

  We jump through some hoops in or DO loop code generation to execute

  a loop until HUGE(i) in a way that somebody who did not read the

  standard well might expect, but which is actually invalid.

 

  If we do not do this any more, then we can probably simplify our DO

  loops considerably.

 

 This is probably too late for 4.8.0. The following patch takes advantage of 
 the

 new option -fno-aggressive-loop-optimizations to remove the xfail (and the two

 XPASS at -O0 and -O1):



This seems like good idea even fo 4.8.  Please also split the testcase - it

contains

several tests and only one has invalid overflow.



Honza


[Bug inline-asm/56148] [4.8 Regression] inline asm matching constraint with different mode

2013-02-03 Thread sergio at serjux dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56148

Sérgio Basto sergio at serjux dot com changed:

   What|Removed |Added

 CC||sergio at serjux dot com

--- Comment #1 from Sérgio Basto sergio at serjux dot com 2013-02-04 03:06:45 
UTC ---
hi, 
This happens when compile VirtualBox-4.2.6 with gcc-4.8

the code of in question is include/iprt/asm.h line 4167


[Bug inline-asm/56148] [4.8 Regression] inline asm matching constraint with different mode

2013-02-03 Thread sergio at serjux dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56148

--- Comment #2 from Sérgio Basto sergio at serjux dot com 2013-02-04 03:12:35 
UTC ---
Hi again, 
this is not a duplicated bug of
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55512 ?


[Bug inline-asm/56148] [4.8 Regression] inline asm matching constraint with different mode

2013-02-03 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56148



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2013-02-04 
07:02:05 UTC ---

Of course not, the other PR was an ICE (and got fixed already months ago), this

one is rejection of (questionable) code, the compiler doesn't crash on it and

it is still present on the turnk.


[Bug ada/51483] [4.7/4.8 regression] cstand.adb:Register_Float_Type makes invalid assumptions about FP representation

2013-02-03 Thread ebotcazou at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51483



--- Comment #15 from Eric Botcazou ebotcazou at gcc dot gnu.org 2013-02-04 
07:15:31 UTC ---

 Can't build Ada/gnat-4.7 on Ubuntu 12.10 because of SPARK issue, although 
 there

 are long and complicated directions for how to build Ada/gnat-4.7 on Ubuntu,

 some work and some don't.  Per GNU standards, the build system should be

 changed so that it's possible to build gnat-4.7 with gnat-4.6. Also, if a

 native compiler of the same version number must be built to build gnat, then

 the build system should (but fails to) automatically build the native version

 first, then use that to build the cross compiler.



This PR has nothing to do with the build system though.


[Bug c++/56191] Destructor affects noexcept detection

2013-02-03 Thread antoshkka at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56191



Antony Polukhin antoshkka at gmail dot com changed:



   What|Removed |Added



 Resolution|FIXED   |DUPLICATE



--- Comment #3 from Antony Polukhin antoshkka at gmail dot com 2013-02-04 
07:27:33 UTC ---

Oh, thanks for clarification!  

Initially I was confused by the fact that std::is_nothrow_constructible checks

for destructor, but I thought that it is a 'noexcept()' bug. Now I see that

this issue is a duplicate for #51452.



(In reply to comment #2)

 N.B. you don't need to CC yourself on bugs, the reporter always gets sent

 changes to the bug



Thanks, next time I won't be so paranoid about mail notifications!



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


[Bug spam/5142] Bug#123687: Info received and FILED only

2013-02-03 Thread antoshkka at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=5142



Antony Polukhin antoshkka at gmail dot com changed:



   What|Removed |Added



 CC||antoshkka at gmail dot com



--- Comment #2 from Antony Polukhin antoshkka at gmail dot com 2013-02-04 
07:27:33 UTC ---

*** Bug 56191 has been marked as a duplicate of this bug. ***


[Bug c++/56191] Destructor affects noexcept detection

2013-02-03 Thread antoshkka at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56191



--- Comment #4 from Antony Polukhin antoshkka at gmail dot com 2013-02-04 
07:28:04 UTC ---

Oh, thanks for clarification!  

Initially I was confused by the fact that std::is_nothrow_constructible checks

for destructor, but I thought that it is a 'noexcept()' bug. Now I see that

this issue is a duplicate for #51452.



(In reply to comment #2)

 N.B. you don't need to CC yourself on bugs, the reporter always gets sent

 changes to the bug



Thanks, next time I won't be so paranoid about mail notifications!


[Bug c++/56191] Destructor affects noexcept detection

2013-02-03 Thread antoshkka at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56191



--- Comment #5 from Antony Polukhin antoshkka at gmail dot com 2013-02-04 
07:29:16 UTC ---





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


[Bug libstdc++/51452] [DR 2116] has_nothrow_.*constructor bugs

2013-02-03 Thread antoshkka at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51452



--- Comment #16 from Antony Polukhin antoshkka at gmail dot com 2013-02-04 
07:29:16 UTC ---

*** Bug 56191 has been marked as a duplicate of this bug. ***


[Bug ada/56178] [4.8 Regression] Conversion of Long_Float to Integer triggers CONSTRAINT_ERROR overflow check failed

2013-02-03 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56178



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-02-04

 CC||jakub at gcc dot gnu.org

 Ever Confirmed|0   |1



--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2013-02-04 
07:32:46 UTC ---

This only seems to occur in profiledbootstrap, e.g. x86_64-linux

--enable-checking=release profiledbootstrap, stagefeedback gnat1 fails, while

stageprofile and stage1 gnat1 work (and in normal bootstrap all of stage[123]

work).  The issue is somewhere in the Ada FE, already in the *.original dump

the difference is between if (0) vs. if (1) for the overflow check call.

Compared to normal bootstrap (also --enable-checking=yes,rtl) with

profiledbootstrap (--enable-checking=release) also shows:

+FAIL:  c34002a

+FAIL:  c460007

+FAIL:  c490001

+FAIL:  cc1221d

+FAIL:  cxa5a04

+FAIL:  cxg2001

+FAIL:  cxg2015

regressions, not sure if that is in any way relased to this issue.


[Bug bootstrap/56198] New: [4.8 Regression] Go profiledbootstrap error

2013-02-03 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56198



 Bug #: 56198

   Summary: [4.8 Regression] Go profiledbootstrap error

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: bootstrap

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: ja...@gcc.gnu.org

CC: i...@gcc.gnu.org





My --enable-checking=release profiledbootstrap failed on an maybe uninitialized

warning turned into -Werror in go/gofrontend/import-archive.cc.

Archive_file::read_header has:

  off_t local_nested_off;

  if (!this-interpret_header(hdr, off, pname, size, local_nested_off))

return false;

  if (nested_off != NULL)

*nested_off = local_nested_off;

and the warning was complaining that local_nested_off might be uninitialized.

If Archive_file::interpret_header is what is called here, then *nested_off

might be indeed uninitialized even when the function returns true, in

particular for:

  else if (hdr-ar_name[1] == ' ')

{

  // This is the symbol table.

  pname-clear();

}

  else if (hdr-ar_name[1] == '/')

{

  // This is the extended name table.

  pname-assign(1, '/');

}

 BTW, there seems to be also an inconsistency in that method, the first write

to

*nested_off in that method is not guarded by nested_off != NULL:

  *nested_off = 0;

while the second one is:

  if (nested_off != NULL)

*nested_off = y;


[Bug bootstrap/56198] [4.8 Regression] Go profiledbootstrap error

2013-02-03 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56198



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



   Target Milestone|--- |4.8.0