@@ -4,6 +4,7 @@
// { dg-do compile }
// { dg-require-effective-target arm_crypto_ok }
// { dg-add-options arm_crypto }
+// { dg-additional-options -fabi-compat-version=0 }
#include <arm_neon.h>
@@ -1,4 +1,5 @@
// { dg-do compile { target c++20 } }
+// { dg-additional-options -fabi-compat-version=0 }
template <class T> concept C = true;
template <class T, class U> concept C2 = true;
@@ -2,6 +2,7 @@
// correctly.
// { dg-do compile { target { aarch64*-*-* } } }
+// { dg-additional-options -fabi-compat-version=0 }
#include <arm_neon.h>
@@ -3,6 +3,7 @@
// { dg-do compile }
// { dg-require-effective-target arm_neon_ok }
// { dg-add-options arm_neon }
+// { dg-additional-options -fabi-compat-version=0 }
#include <arm_neon.h>
@@ -1,5 +1,5 @@
// { dg-do run { target { { i?86-*-* x86_64-*-* } && ia32 } } }
-// { dg-options "-Wabi=8 -save-temps" }
+// { dg-options "-Wabi=8 -save-temps -fabi-compat-version=0" }
// { dg-final { scan-assembler "_Z18IndirectExternCallIPU7stdcallU7regparmILi3EEFviiEiEvT_T0_S3_" } }
typedef __SIZE_TYPE__ size_t;
@@ -1,5 +1,5 @@
// { dg-do run { target { { i?86-*-* x86_64-*-* } && ia32 } } }
-// { dg-options "-fabi-version=8 -Wabi -save-temps" }
+// { dg-options "-fabi-version=8 -fabi-compat-version=8 -Wabi -save-temps" }
// { dg-final { scan-assembler "_Z18IndirectExternCallIPFviiEiEvT_T0_S3_" } }
template <typename F, typename T>
@@ -1,5 +1,6 @@
// ABI #47 "natural" template parameter mangling
// { dg-do compile { target c++17 } }
+// { dg-additional-options -fabi-compat-version=0 }
template <template <class...> class TT> class A { };
template <int... T> class B { };
@@ -1,5 +1,6 @@
// PR c++/104847
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
struct S { int i; };
union U { S k; };
@@ -1,7 +1,7 @@
// Test for mangling of simple testcase involving construction vtables.
// { dg-do compile }
-// { dg-options "-fno-inline" }
+// { dg-options "-fno-inline -fabi-compat-version=0" }
struct A {
virtual void f () { }
@@ -1,4 +1,4 @@
-// { dg-options "-fabi-version=10" }
+// { dg-options "-fabi-version=10 -fabi-compat-version=10" }
struct A {
template <typename T> int f ();
@@ -1,5 +1,5 @@
// { dg-do compile }
-// { dg-options "-fabi-version=0" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0" }
struct A {
template <typename T> int f ();
@@ -1,4 +1,4 @@
-// { dg-options "-fabi-version=0" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0" }
enum E { e = 3 };
@@ -1,5 +1,5 @@
// { dg-do compile }
-// { dg-options "-fabi-version=2" }
+// { dg-options "-fabi-version=2 -fabi-compat-version=2" }
// Copyright (C) 2003 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 30 Nov 2003 <nathan@codesourcery.com>
@@ -1,5 +1,5 @@
// { dg-do compile }
-// { dg-options "-fabi-version=2 -Wabi" }
+// { dg-options "-fabi-version=2 -fabi-compat-version=2 -Wabi=0" }
// Copyright (C) 2003 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 15 Dec 2003 <nathan@codesourcery.com>
@@ -1,5 +1,5 @@
// { dg-do compile }
-// { dg-options "-fabi-version=2" }
+// { dg-options "-fabi-version=2 -fabi-compat-version=2" }
// Copyright (C) 2003 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 15 Dec 2003 <nathan@codesourcery.com>
@@ -1,5 +1,5 @@
// PR c++/16240
-// { dg-options "-fabi-version=3" }
+// { dg-options "-fabi-version=3 -fabi-compat-version=3" }
void foo(char);
template<void (&)(char)> struct CB {};
@@ -1,5 +1,5 @@
// PR c++/16240
-// { dg-options "-fabi-version=2 -Wno-abi" }
+// { dg-options "-fabi-version=2 -fabi-compat-version=2 -Wno-abi" }
void foo(char);
template<void (&)(char)> struct CB {};
@@ -4,7 +4,7 @@
// ia64-hpux where "long double" is "e" and __float80 is "u9__float80".
// Origin: Joseph Myers <joseph@codesourcery.com>
// { dg-do compile { target i?86-*-* x86_64-*-* ia64-*-* } }
-// { dg-options "" }
+// { dg-options "-fabi-compat-version=0" }
// { dg-final { scan-assembler "_Z1fe" { target i?86-*-* x86_64-*-* } } }
// { dg-final { scan-assembler "_Z1fe" { target { ia64-*-* && { ! "ia64-*-hpux*" } } } } }
// { dg-final { scan-assembler "_Z1fu9__float80" { target ia64-*-hpux* } } }
@@ -5,7 +5,7 @@
// "long double".
// Origin: Joseph Myers <joseph@codesourcery.com>
// { dg-do compile { target ia64-*-* i?86-*-* x86_64-*-* } }
-// { dg-options "" }
+// { dg-options "-fabi-compat-version=0" }
// { dg-final { scan-assembler "_Z1fg" { target i?86-*-* x86_64-*-* } } }
// { dg-final { scan-assembler "_Z1fg" { target { ia64-*-* && { ! "ia64-*-hpux*" } } } } }
// { dg-final { scan-assembler "_Z1fe" { target ia64-*-hpux* } } }
@@ -1,7 +1,7 @@
// Test of std mangling
// { dg-do compile }
-// { dg-options "-fno-inline -fno-implicit-constexpr" }
+// { dg-options "-fno-inline -fno-implicit-constexpr -fabi-compat-version=0" }
namespace std {
struct A {
@@ -1,7 +1,7 @@
// Test of std::basic_iostream<char, std::char_traits<char> > mangling
// { dg-do compile }
-// { dg-options "-fno-inline" }
+// { dg-options "-fno-inline -fabi-compat-version=0" }
namespace std {
template<typename> struct char_traits;
@@ -1,7 +1,7 @@
// Test of std::basic_istream<char, std::char_traits<char> > mangling
// { dg-do compile }
-// { dg-options "-fno-inline" }
+// { dg-options "-fno-inline -fabi-compat-version=0" }
namespace std {
template<typename> struct char_traits;
@@ -1,7 +1,7 @@
// Test of std::basic_ostream<char, std::char_traits<char> > mangling
// { dg-do compile }
-// { dg-options "-fno-inline" }
+// { dg-options "-fno-inline -fabi-compat-version=0" }
namespace std {
template<typename> struct char_traits;
@@ -1,5 +1,5 @@
// Test mangling of type casts
-// { dg-options "-fabi-version=0 -Wabi=5" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0 -Wabi=5" }
// { dg-do compile }
template<int i> class A {};
@@ -1,5 +1,5 @@
// Test mangling of type casts
-// { dg-options "-fabi-version=2 -Wabi" }
+// { dg-options "-fabi-version=2 -fabi-compat-version=2 -Wabi=0" }
// { dg-do compile }
template<int i> class A {};
@@ -1,4 +1,5 @@
// Test for mangling of template args in a typename type.
+// { dg-additional-options -fabi-compat-version=0 }
struct A
{
@@ -1,5 +1,6 @@
// PR c++/39095
// { dg-do compile }
+// { dg-additional-options -fabi-compat-version=0 }
struct B
{
@@ -4,6 +4,7 @@
// are distinct.
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
typedef struct { } *A;
typedef struct { } *B;
@@ -1,4 +1,5 @@
// Testcase for mangling very long names.
+// { dg-additional-options -fabi-compat-version=0 }
#define N \
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm
@@ -4,6 +4,7 @@
// This tests the mangling of empty template argument list in a template
// id.
// { dg-final { scan-assembler "_ZNK5DummyclI3GenEENT_3SigIE10ResultTypeERKS2_" } }
+// { dg-additional-options -fabi-compat-version=0 }
struct Void {};
@@ -1,5 +1,6 @@
// PR c++/38600
// { dg-final { scan-assembler "_Z3barIiE1AIX3fooIT_EEEv" } }
+// { dg-additional-options -fabi-compat-version=0 }
template<void (*)()> struct A {};
@@ -1,6 +1,6 @@
// PR c++/41959
// { dg-do compile { target i?86-*-* x86_64-*-* } }
-// { dg-options "-mavx -fabi-version=4" }
+// { dg-options "-mavx -fabi-version=4 -fabi-compat-version=4" }
// { dg-final { scan-assembler "_Z1fDv4_f" } }
// { dg-final { scan-assembler "_Z1fDv8_f" } }
@@ -1,6 +1,6 @@
// Testcase for mangling of expressions involving operator names.
// { dg-do compile { target c++11 } }
-// { dg-options "-fabi-version=10" }
+// { dg-options "-fabi-version=10 -fabi-compat-version=10" }
// { dg-final { scan-assembler "_Z1fI1AEDTclonplfp_fp_EET_" } }
// { dg-final { scan-assembler "_Z1gI1AEDTclonplIT_Efp_fp_EES1_" } }
// { dg-final { scan-assembler "_Z1hI1AEDTcldtfp_miEET_" } }
@@ -1,6 +1,6 @@
// PR c++/42338
// { dg-do compile { target c++11 } }
-// { dg-options "-fabi-version=5" }
+// { dg-options "-fabi-version=5 -fabi-compat-version=5" }
// { dg-final { scan-assembler "_Z1fIPiEDTcmppfp_Li0EET_" } }
// { dg-final { scan-assembler "_Z1gIiEvRK1AIT_EDTixfL0p_Li0EE" } }
@@ -2,7 +2,7 @@
// { dg-do compile { target i?86-*-* x86_64-*-* } }
// { dg-require-weak "" }
// { dg-require-alias "" }
-// { dg-options "-mavx -Wabi -fabi-version=2" }
+// { dg-options "-mavx -Wabi -fabi-version=2 -fabi-compat-version=0" }
// { dg-final { scan-assembler "(weak|glob)\[^\n\]*_Z1fIDv4_fEvT_" } }
// { dg-final { scan-assembler "(weak|glob)\[^\n\]*_Z1fIU8__vectorfEvT_" } }
// { dg-final { scan-assembler "(weak|glob)\[^\n\]*_ZN1AIDv4_fE1tE" } }
@@ -1,5 +1,5 @@
// { dg-do compile { target int128 } }
-// { dg-options "" }
+// { dg-options "-fabi-compat-version=0" }
struct S {
S(void) { m_i128 = 0; m_u128 = 0; }
@@ -1,4 +1,5 @@
// PR c++/45008
+// { dg-additional-options -fabi-compat-version=0 }
template <typename T>
struct A
@@ -1,6 +1,6 @@
// Testcase for mangling of parameters used other than in a trailing return type
// { dg-do compile { target c++11 } }
-// { dg-options "-fabi-version=5 -Wabi=4" }
+// { dg-options "-fabi-version=5 -fabi-compat-version=5 -Wabi=4" }
template<class T> void f(T p, decltype(p)) { } // L = 1 { dg-warning "mangle" }
template<class T> void g(T p, decltype(p) (*)()) { } // L = 1 { dg-warning "mangle" }
@@ -1,5 +1,5 @@
// PR c++/48008
-// { dg-options -fabi-version=5 }
+// { dg-options "-fabi-version=5 -fabi-compat-version=5" }
// Test that we retain function-cv-quals in template argument mangling.
template <class T>
@@ -1,6 +1,7 @@
// PR c++/47132
// { dg-do compile { target c++11 } }
// { dg-final { scan-assembler "_Z1fIiEDToRfp_Li1EET_" } }
+// { dg-additional-options -fabi-compat-version=0 }
template <typename T>
auto f (T t) -> decltype(t |= 1);
@@ -1,5 +1,6 @@
// Testcase for 'this' mangling
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
struct B
{
@@ -1,6 +1,6 @@
// PR c++/49932
// { dg-do compile { target c++11 } }
-// { dg-options "-fabi-version=0 -Wabi=2" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0 -Wabi=2" }
template < typename T >
auto
@@ -1,4 +1,5 @@
// Test mangling of pointers to cv-qualified member functions
+// { dg-additional-options -fabi-compat-version=0 }
struct A;
void f (void (A::*)() const) {}
@@ -1,5 +1,6 @@
// DR 342, PR c++/48582
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
struct A;
template < void * = nullptr > void f() { }
@@ -1,5 +1,5 @@
// { dg-do compile { target c++11 } }
-// { dg-options "-fabi-version=0" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0" }
void* operator new (__SIZE_TYPE__, void *p) { return p; }
int i;
@@ -1,4 +1,4 @@
-// { dg-options "-fabi-version=18 -Wabi=2" }
+// { dg-options "-fabi-version=18 -fabi-compat-version=18 -Wabi=2" }
template <unsigned int> struct helper {};
// { dg-final { scan-assembler "\n_?_Z6check1IiEvP6helperIXszscT_Li1EEE\[: \t\n\]" } }
@@ -1,4 +1,5 @@
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
bool b;
int i;
@@ -1,5 +1,5 @@
// { dg-do compile { target c++11 } }
-// { dg-options "-fabi-version=0 -Wabi=2" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0 -Wabi=2" }
int i;
// { dg-final { scan-assembler "_Z2f1IiEDTppfp_ET_" } }
@@ -1,4 +1,5 @@
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
struct A { int i; };
// { dg-final { scan-assembler "_Z2f1Ii1AEDTdsfp_fp0_ET0_MS2_T_" } }
@@ -1,4 +1,5 @@
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
template <class T> T g(T t1, T t2) { return t2; }
// { dg-final { scan-assembler "_Z2f1IiEDTcl1gfp_ilEEET_" } }
@@ -1,5 +1,5 @@
// { dg-do compile { target c++11 } }
-// { dg-options "-fabi-version=0 -Wabi=2" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0 -Wabi=2" }
template<typename T> int cmp1(T a, T b);
int cmp2(char a, char b);
@@ -1,5 +1,5 @@
// { dg-do compile { target c++11 } }
-// { dg-options "-fabi-version=0 -Wabi=2" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0 -Wabi=2" }
template<typename T, int (*cmp)(T, T)> struct A { };
struct B {
@@ -1,5 +1,5 @@
// { dg-do compile { target c++11 } }
-// { dg-options "-fabi-version=0" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0" }
// { dg-final { scan-assembler "_Z1fIiEDTcmdlfp_psfp_EPT_" } }
template <class T> auto f (T* p) -> decltype(delete p, +p) { return p; }
@@ -1,5 +1,6 @@
/* Check that __int128 types are mangled. */
/* { dg-do compile { target mips*-*-* } } */
+// { dg-additional-options -fabi-compat-version=0 }
#ifdef __mips64
typedef int int128 __attribute__ ((mode(TI)));
@@ -1,5 +1,5 @@
// PR c++/51854
-// { dg-options "" }
+// { dg-options "-fabi-compat-version=0" }
template <unsigned N> struct A;
@@ -1,5 +1,6 @@
// PR c++/56237
// { dg-do compile }
+// { dg-additional-options -fabi-compat-version=0 }
void *p[4];
@@ -2,7 +2,7 @@
// as a substitution candidate for a function type with function-cv-quals.
// Test for the conformant behavior.
-// { dg-options "-fabi-version=0 -Wabi=7" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0 -Wabi=7" }
template <class T, class U> struct A { };
// { dg-final { scan-assembler "\n_?_Z1fP1AIKFvvEFvvEE\[: \t\n\]" } }
@@ -2,7 +2,7 @@
// as a substitution candidate for a function type with function-cv-quals.
// Test for that for backward compatibility.
-// { dg-options "-fabi-version=7 -Wabi" }
+// { dg-options "-fabi-version=7 -fabi-compat-version=7 -Wabi=0" }
template <class T, class U> struct A { };
// { dg-final { scan-assembler "\n_?_Z1fP1AIKFvvES0_E\[: \t\n\]" } }
@@ -1,5 +1,6 @@
// DR 850 makes this valid
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
template<class T> struct A
{
@@ -1,5 +1,5 @@
// { dg-do compile { target msp430*-*-* } }
-// { dg-options "-std=gnu++11" }
+// { dg-options "-std=gnu++11 -fabi-compat-version=0" }
// { dg-skip-if "" { msp430*-*-* } { "-mcpu=msp430" } { "" } }
__int20 x;
@@ -1,5 +1,6 @@
// PR c++/64898
// { dg-final { scan-assembler-not "_Z6foovar" } }
+// { dg-additional-options -fabi-compat-version=0 }
template <class> void f()
{
@@ -1,4 +1,5 @@
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
namespace N {
template <class T> using A = typename T::template X<int>;
@@ -1,5 +1,6 @@
// PR c++/89356
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
template<typename T>
auto fn () -> decltype(unsigned{2u} + (T)3) { return 42; }
@@ -1,4 +1,5 @@
// { dg-do compile { target c++2a } }
+// { dg-additional-options -fabi-compat-version=0 }
struct A1 { char c[5]; };
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+// { dg-additional-options -fabi-compat-version=0 }
typedef void *const t1[2];
float const f1(t1 (&)[79], ...) { return 0.0f; }
@@ -1,6 +1,7 @@
// Verify that class literals are mangled the same way regardless
// of the underlying type.
// { dg-do compile { target c++2a } }
+// { dg-additional-options -fabi-compat-version=0 }
struct I { int a[5], b[5], c[5]; };
template <I> struct X { };
@@ -1,5 +1,6 @@
// Verify mangling of class literals of types with ctors.
// { dg-do compile { target c++2a } }
+// { dg-additional-options -fabi-compat-version=0 }
struct A
{
@@ -1,6 +1,7 @@
// Verify manglinng of class literals with pointers to members.
// Some of the mangling here is wrong. Note the FIXME comments below.
// { dg-do compile { target c++2a } }
+// { dg-additional-options -fabi-compat-version=0 }
struct A { int a[2]; };
@@ -1,4 +1,5 @@
// { dg-do compile { target c++2a } }
+// { dg-additional-options -fabi-compat-version=0 }
struct A
{
@@ -1,5 +1,5 @@
// { dg-do compile { target c++17 } }
-// { dg-options "-fno-inline -O0" }
+// { dg-options "-fno-inline -O0 -fabi-compat-version=0" }
inline auto var = [] () {return 2;};
@@ -1,5 +1,6 @@
// PR c++/91377
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
struct f {
static constexpr int d = 3;
@@ -1,6 +1,6 @@
// PR c++/98545
// { dg-do compile { target c++11 } }
-// { dg-options "-Wabi=14" }
+// { dg-options "-Wabi=14 -fabi-compat-version=0" }
class a {
public:
@@ -2,6 +2,7 @@
// arguments and other expressions in the signature.
// { dg-do compile { target c++20 } }
+// { dg-additional-options -fabi-compat-version=0 }
struct B
{
@@ -1,5 +1,6 @@
// PR c++/70790
// { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
template<bool B>
struct A { };
@@ -2,6 +2,7 @@
// Bug: We were encoding the name of the instantiation as 'operator int'
// rather than 'operator T'.
// { dg-do compile }
+// { dg-additional-options -fabi-compat-version=0 }
struct C {
template <class T>
@@ -1,4 +1,4 @@
-// { dg-options "-fabi-version=0" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0" }
template <typename Q>
void f (typename Q::X) {}