--- 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
--- 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
--- 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.
--
paolo dot carlini at oracle dot com changed:
What|Removed |Added
Severity|blocker |normal
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45603
--- 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
--- 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
--- 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 __
--- 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.
--
--- 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
--- 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++
--- 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 *
--- 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://
12 matches
Mail list logo