[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-09 Thread jakub at gcc dot gnu dot org
--- Comment #11 from jakub at gcc dot gnu dot org 2010-09-09 10:28 --- template struct Singleton { static T* get() { static T instance; return &instance; } ~Singleton() {} }; struct Foo : Singleton { }; #ifdef __ARM_EABI__ typedef int __guard; #else typedef int __guard

[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-09 Thread rguenth at gcc dot gnu dot org
--- Comment #10 from rguenth at gcc dot gnu dot org 2010-09-09 09:51 --- Confirmed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNC

[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-09 Thread paolo dot carlini at oracle dot com
--- Comment #9 from paolo dot carlini at oracle dot com 2010-09-09 09:43 --- (In reply to comment #8) (BTW, where did you find that they should be declared throw()? If you open cxxabi.h, you can see _GLIBCXX_NOTHROW after release and abort. -- http://gcc.gnu.org/bugzilla/show_bug.

[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-09 Thread paolo dot carlini at oracle dot com
-- paolo dot carlini at oracle dot com changed: What|Removed |Added Severity|blocker |normal http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45603

[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-09 Thread jobnoorman at gmail dot com
--- Comment #8 from jobnoorman at gmail dot com 2010-09-09 08:00 --- (In reply to comment #7) > That's because the compiler's expectation is that if you define > __cxa_guard_acquire, you also define __cxa_guard_release and > __cxa_guard_abort. > And, they should be declared throw() as w

[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-09 Thread jakub at gcc dot gnu dot org
--- Comment #7 from jakub at gcc dot gnu dot org 2010-09-09 07:45 --- That's because the compiler's expectation is that if you define __cxa_guard_acquire, you also define __cxa_guard_release and __cxa_guard_abort. And, they should be declared throw() as well. -- http://gcc.gnu.org/b

[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-09 Thread jobnoorman at gmail dot com
--- Comment #6 from jobnoorman at gmail dot com 2010-09-09 07:35 --- (In reply to comment #5) > Then you should look into the ABI to see how it is defined. I think this ICE > only happens when it is declared incorrectly. According to the ABI, it should be declared as extern "C" int __

[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-09 Thread pinskia at gcc dot gnu dot org
--- Comment #5 from pinskia at gcc dot gnu dot org 2010-09-09 07:27 --- >I can use that as a quick workaround but I'll eventually need __cxa_guard_acquire. Then you should look into the ABI to see how it is defined. I think this ICE only happens when it is declared incorrectly. --

[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-09 Thread jobnoorman at gmail dot com
--- Comment #4 from jobnoorman at gmail dot com 2010-09-09 07:25 --- (In reply to comment #3) > You need to include -fno-threadsafe-statics to disable the use of > __cxa_guard_acquire. This functions is part of the normal C++ ABI we follow > (the IA64 C++ ABI and it is included in the A

[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-09 Thread pinskia at gcc dot gnu dot org
--- Comment #3 from pinskia at gcc dot gnu dot org 2010-09-09 07:20 --- >I first triggered this bug in a freestanding environment You need to include -fno-threadsafe-statics to disable the use of __cxa_guard_acquire. This functions is part of the normal C++ ABI we follow (the IA64 C++

[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-09 Thread jobnoorman at gmail dot com
--- Comment #2 from jobnoorman at gmail dot com 2010-09-09 07:11 --- (In reply to comment #1) > Note, if you really need the name __cxa_guard_acquire to trigger the bug, > which > is in the implementor "namespace", due to the double underscore in front, this > is a low priority ICE on *

[Bug c++/45603] cc1plus crashes in "build_addr_func"

2010-09-08 Thread paolo dot carlini at oracle dot com
--- Comment #1 from paolo dot carlini at oracle dot com 2010-09-08 23:31 --- Note, if you really need the name __cxa_guard_acquire to trigger the bug, which is in the implementor "namespace", due to the double underscore in front, this is a low priority ICE on *illegal*. -- http://