* include/std/complex (real, imag): Add ABI tag in C++11 mode.
From-SVN: r193445
This commit is contained in:
parent
132a1a23e6
commit
7a3a9e6821
@ -1,3 +1,7 @@
|
||||
2012-11-11 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* include/std/complex (real, imag): Add ABI tag in C++11 mode.
|
||||
|
||||
2012-11-11 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* doc/xml/chapter.txml: Remove whitespace inside <keyword>.
|
||||
|
@ -141,9 +141,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
#if __cplusplus >= 201103L
|
||||
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||
// DR 387. std::complex over-encapsulated.
|
||||
__attribute ((__abi_tag__ ("cxx11")))
|
||||
constexpr _Tp
|
||||
real() { return _M_real; }
|
||||
|
||||
__attribute ((__abi_tag__ ("cxx11")))
|
||||
constexpr _Tp
|
||||
imag() { return _M_imag; }
|
||||
#else
|
||||
@ -1061,9 +1063,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
#if __cplusplus >= 201103L
|
||||
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||
// DR 387. std::complex over-encapsulated.
|
||||
__attribute ((__abi_tag__ ("cxx11")))
|
||||
constexpr float
|
||||
real() { return __real__ _M_value; }
|
||||
|
||||
__attribute ((__abi_tag__ ("cxx11")))
|
||||
constexpr float
|
||||
imag() { return __imag__ _M_value; }
|
||||
#else
|
||||
@ -1210,9 +1214,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
#if __cplusplus >= 201103L
|
||||
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||
// DR 387. std::complex over-encapsulated.
|
||||
__attribute ((__abi_tag__ ("cxx11")))
|
||||
constexpr double
|
||||
real() { return __real__ _M_value; }
|
||||
|
||||
__attribute ((__abi_tag__ ("cxx11")))
|
||||
constexpr double
|
||||
imag() { return __imag__ _M_value; }
|
||||
#else
|
||||
@ -1360,9 +1366,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
#if __cplusplus >= 201103L
|
||||
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||
// DR 387. std::complex over-encapsulated.
|
||||
__attribute ((__abi_tag__ ("cxx11")))
|
||||
constexpr long double
|
||||
real() { return __real__ _M_value; }
|
||||
|
||||
__attribute ((__abi_tag__ ("cxx11")))
|
||||
constexpr long double
|
||||
imag() { return __imag__ _M_value; }
|
||||
#else
|
||||
|
25
libstdc++-v3/testsuite/26_numerics/complex/abi_tag.cc
Normal file
25
libstdc++-v3/testsuite/26_numerics/complex/abi_tag.cc
Normal file
@ -0,0 +1,25 @@
|
||||
// Test that the C++11 variants of real/imag have an ABI tag
|
||||
// { dg-do compile }
|
||||
// { dg-options -std=c++11 }
|
||||
|
||||
#include <complex>
|
||||
|
||||
// { dg-final { scan-assembler "_ZNKSt7complexIfE4realB5cxx11Ev" } }
|
||||
float (std::complex<float>::*p1)() const = &std::complex<float>::real;
|
||||
// { dg-final { scan-assembler "_ZNKSt7complexIdE4realB5cxx11Ev" } }
|
||||
double (std::complex<double>::*p2)() const = &std::complex<double>::real;
|
||||
// { dg-final { scan-assembler "_ZNKSt7complexIeE4realB5cxx11Ev" } }
|
||||
long double (std::complex<long double>::*p3)() const
|
||||
= &std::complex<long double>::real;
|
||||
// { dg-final { scan-assembler "_ZNKSt7complexIiE4realB5cxx11Ev" } }
|
||||
int (std::complex<int>::*p4)() const = &std::complex<int>::real;
|
||||
|
||||
// { dg-final { scan-assembler "_ZNKSt7complexIfE4imagB5cxx11Ev" } }
|
||||
float (std::complex<float>::*p5)() const = &std::complex<float>::imag;
|
||||
// { dg-final { scan-assembler "_ZNKSt7complexIdE4imagB5cxx11Ev" } }
|
||||
double (std::complex<double>::*p6)() const = &std::complex<double>::imag;
|
||||
// { dg-final { scan-assembler "_ZNKSt7complexIeE4imagB5cxx11Ev" } }
|
||||
long double (std::complex<long double>::*p7)() const
|
||||
= &std::complex<long double>::imag;
|
||||
// { dg-final { scan-assembler "_ZNKSt7complexIiE4imagB5cxx11Ev" } }
|
||||
int (std::complex<int>::*p8)() const = &std::complex<int>::imag;
|
Loading…
Reference in New Issue
Block a user