]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
testsuite: suppress mangling compatibility aliases
authorJason Merrill <jason@redhat.com>
Thu, 21 Dec 2023 21:16:37 +0000 (16:16 -0500)
committerJason Merrill <jason@redhat.com>
Fri, 22 Dec 2023 00:19:34 +0000 (19:19 -0500)
Recently a mangling test failed on a target with no mangling alias support
because I hadn't updated the expected mangling, but it was still passing on
x86_64-pc-linux-gnu because of the alias for the old mangling.  So let's
avoid these aliases in mangling tests.

gcc/testsuite/ChangeLog:

* g++.dg/abi/mangle-arm-crypto.C: Specify -fabi-compat-version.
* g++.dg/abi/mangle-concepts1.C
* g++.dg/abi/mangle-neon-aarch64.C
* g++.dg/abi/mangle-neon.C
* g++.dg/abi/mangle-regparm.C
* g++.dg/abi/mangle-regparm1a.C
* g++.dg/abi/mangle-ttp1.C
* g++.dg/abi/mangle-union1.C
* g++.dg/abi/mangle1.C
* g++.dg/abi/mangle13.C
* g++.dg/abi/mangle15.C
* g++.dg/abi/mangle16.C
* g++.dg/abi/mangle18-1.C
* g++.dg/abi/mangle19-1.C
* g++.dg/abi/mangle20-1.C
* g++.dg/abi/mangle22.C
* g++.dg/abi/mangle23.C
* g++.dg/abi/mangle24.C
* g++.dg/abi/mangle25.C
* g++.dg/abi/mangle26.C
* g++.dg/abi/mangle27.C
* g++.dg/abi/mangle28.C
* g++.dg/abi/mangle29.C
* g++.dg/abi/mangle3-2.C
* g++.dg/abi/mangle3.C
* g++.dg/abi/mangle30.C
* g++.dg/abi/mangle31.C
* g++.dg/abi/mangle32.C
* g++.dg/abi/mangle33.C
* g++.dg/abi/mangle34.C
* g++.dg/abi/mangle35.C
* g++.dg/abi/mangle36.C
* g++.dg/abi/mangle37.C
* g++.dg/abi/mangle39.C
* g++.dg/abi/mangle40.C
* g++.dg/abi/mangle43.C
* g++.dg/abi/mangle44.C
* g++.dg/abi/mangle45.C
* g++.dg/abi/mangle46.C
* g++.dg/abi/mangle47.C
* g++.dg/abi/mangle48.C
* g++.dg/abi/mangle49.C
* g++.dg/abi/mangle5.C
* g++.dg/abi/mangle50.C
* g++.dg/abi/mangle51.C
* g++.dg/abi/mangle52.C
* g++.dg/abi/mangle53.C
* g++.dg/abi/mangle54.C
* g++.dg/abi/mangle55.C
* g++.dg/abi/mangle56.C
* g++.dg/abi/mangle57.C
* g++.dg/abi/mangle58.C
* g++.dg/abi/mangle59.C
* g++.dg/abi/mangle6.C
* g++.dg/abi/mangle60.C
* g++.dg/abi/mangle61.C
* g++.dg/abi/mangle62.C
* g++.dg/abi/mangle62a.C
* g++.dg/abi/mangle63.C
* g++.dg/abi/mangle64.C
* g++.dg/abi/mangle65.C
* g++.dg/abi/mangle66.C
* g++.dg/abi/mangle68.C
* g++.dg/abi/mangle69.C
* g++.dg/abi/mangle7.C
* g++.dg/abi/mangle70.C
* g++.dg/abi/mangle71.C
* g++.dg/abi/mangle72.C
* g++.dg/abi/mangle73.C
* g++.dg/abi/mangle74.C
* g++.dg/abi/mangle75.C
* g++.dg/abi/mangle76.C
* g++.dg/abi/mangle77.C
* g++.dg/abi/mangle78.C
* g++.dg/abi/mangle8.C
* g++.dg/abi/mangle9.C: Likewise.

76 files changed:
gcc/testsuite/g++.dg/abi/mangle-arm-crypto.C
gcc/testsuite/g++.dg/abi/mangle-concepts1.C
gcc/testsuite/g++.dg/abi/mangle-neon-aarch64.C
gcc/testsuite/g++.dg/abi/mangle-neon.C
gcc/testsuite/g++.dg/abi/mangle-regparm.C
gcc/testsuite/g++.dg/abi/mangle-regparm1a.C
gcc/testsuite/g++.dg/abi/mangle-ttp1.C
gcc/testsuite/g++.dg/abi/mangle-union1.C
gcc/testsuite/g++.dg/abi/mangle1.C
gcc/testsuite/g++.dg/abi/mangle13.C
gcc/testsuite/g++.dg/abi/mangle15.C
gcc/testsuite/g++.dg/abi/mangle16.C
gcc/testsuite/g++.dg/abi/mangle18-1.C
gcc/testsuite/g++.dg/abi/mangle19-1.C
gcc/testsuite/g++.dg/abi/mangle20-1.C
gcc/testsuite/g++.dg/abi/mangle22.C
gcc/testsuite/g++.dg/abi/mangle23.C
gcc/testsuite/g++.dg/abi/mangle24.C
gcc/testsuite/g++.dg/abi/mangle25.C
gcc/testsuite/g++.dg/abi/mangle26.C
gcc/testsuite/g++.dg/abi/mangle27.C
gcc/testsuite/g++.dg/abi/mangle28.C
gcc/testsuite/g++.dg/abi/mangle29.C
gcc/testsuite/g++.dg/abi/mangle3-2.C
gcc/testsuite/g++.dg/abi/mangle3.C
gcc/testsuite/g++.dg/abi/mangle30.C
gcc/testsuite/g++.dg/abi/mangle31.C
gcc/testsuite/g++.dg/abi/mangle32.C
gcc/testsuite/g++.dg/abi/mangle33.C
gcc/testsuite/g++.dg/abi/mangle34.C
gcc/testsuite/g++.dg/abi/mangle35.C
gcc/testsuite/g++.dg/abi/mangle36.C
gcc/testsuite/g++.dg/abi/mangle37.C
gcc/testsuite/g++.dg/abi/mangle39.C
gcc/testsuite/g++.dg/abi/mangle40.C
gcc/testsuite/g++.dg/abi/mangle43.C
gcc/testsuite/g++.dg/abi/mangle44.C
gcc/testsuite/g++.dg/abi/mangle45.C
gcc/testsuite/g++.dg/abi/mangle46.C
gcc/testsuite/g++.dg/abi/mangle47.C
gcc/testsuite/g++.dg/abi/mangle48.C
gcc/testsuite/g++.dg/abi/mangle49.C
gcc/testsuite/g++.dg/abi/mangle5.C
gcc/testsuite/g++.dg/abi/mangle50.C
gcc/testsuite/g++.dg/abi/mangle51.C
gcc/testsuite/g++.dg/abi/mangle52.C
gcc/testsuite/g++.dg/abi/mangle53.C
gcc/testsuite/g++.dg/abi/mangle54.C
gcc/testsuite/g++.dg/abi/mangle55.C
gcc/testsuite/g++.dg/abi/mangle56.C
gcc/testsuite/g++.dg/abi/mangle57.C
gcc/testsuite/g++.dg/abi/mangle58.C
gcc/testsuite/g++.dg/abi/mangle59.C
gcc/testsuite/g++.dg/abi/mangle6.C
gcc/testsuite/g++.dg/abi/mangle60.C
gcc/testsuite/g++.dg/abi/mangle61.C
gcc/testsuite/g++.dg/abi/mangle62.C
gcc/testsuite/g++.dg/abi/mangle62a.C
gcc/testsuite/g++.dg/abi/mangle63.C
gcc/testsuite/g++.dg/abi/mangle64.C
gcc/testsuite/g++.dg/abi/mangle65.C
gcc/testsuite/g++.dg/abi/mangle66.C
gcc/testsuite/g++.dg/abi/mangle68.C
gcc/testsuite/g++.dg/abi/mangle69.C
gcc/testsuite/g++.dg/abi/mangle7.C
gcc/testsuite/g++.dg/abi/mangle70.C
gcc/testsuite/g++.dg/abi/mangle71.C
gcc/testsuite/g++.dg/abi/mangle72.C
gcc/testsuite/g++.dg/abi/mangle73.C
gcc/testsuite/g++.dg/abi/mangle74.C
gcc/testsuite/g++.dg/abi/mangle75.C
gcc/testsuite/g++.dg/abi/mangle76.C
gcc/testsuite/g++.dg/abi/mangle77.C
gcc/testsuite/g++.dg/abi/mangle78.C
gcc/testsuite/g++.dg/abi/mangle8.C
gcc/testsuite/g++.dg/abi/mangle9.C

index f3fb1a96601b2e35d7c6ac439061336f1fe691e1..1d3f832f8a146129fb09d85b36afbc699865a731 100644 (file)
@@ -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>
 
index eac520cef3c07df74e754b62cdd6adf0d7ffc0aa..cb3396b663a09a27a896d33407beea39699b1700 100644 (file)
@@ -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;
index 50c1452ed83c8a2f4ad3b162931292db328813c6..b62cf5dd49e2a09e3b53fa1b6d6b7bab4d55f989 100644 (file)
@@ -2,6 +2,7 @@
 // correctly.
 
 // { dg-do compile { target { aarch64*-*-* } } }
+// { dg-additional-options -fabi-compat-version=0 }
 
 #include <arm_neon.h>
 
index 57a9db269222bea6f81e30ec29bcc6837ea7fbd6..1ab51d5a78abdb7bab437841908056c19b782c68 100644 (file)
@@ -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>
 
index 361e38bd3f3f6feafed8fc42d8d4dd53250e5247..480b5fa6f1d0c1f6107bbf8befb085073fae7d06 100644 (file)
@@ -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;
index bfa6c9b00397d6d31322e25ad8667b404cfb92bf..60ac51e1ff33bae20817edc8ee7d0b359ef1b63d 100644 (file)
@@ -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>
index 2f5878fc3fe107ccc75cef44bfff5488e075230a..0c3660dd79eb506272f636bc6d865de89fbc73ef 100644 (file)
@@ -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 { };
index f2ee4576adfa8cc838eb9a5a6d022344306e38fb..0cd3a9e371ceb1e946ecd7118d6d09d46d34dc13 100644 (file)
@@ -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; };
index ab377d13b4ed463c6972db098b3b6cfd4c73493e..40bb9a9e2fc6c6e5665fbd205a2eb5dafff3d430 100644 (file)
@@ -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 () { }
index c8822a34039ccbb34b30129fe7e334562c5ad7f0..de1bef58ece154a6ca2cbe46843983a28db8953e 100644 (file)
@@ -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 ();
index 3c112e263f07c48f0ffb0b646fd4cdbec6d8f692..b143c78ffc282a22d5a9a666044224d1cde397d7 100644 (file)
@@ -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 ();
index 1f3039f868200426987ad3d28d966b749f21f7ed..b96de711980e5fd13a9be9c29d922a15286d74a1 100644 (file)
@@ -1,4 +1,4 @@
-// { dg-options "-fabi-version=0" }
+// { dg-options "-fabi-version=0 -fabi-compat-version=0" }
 
 enum E { e = 3 };
 
index a1be5e48c33a2eddfb495c208be064470c8490aa..86b1305d2488240c863b75eb609257a6a451ac79 100644 (file)
@@ -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>
index a888173304bb4404c0b25f9644423b301b7089e0..3f98a727de2405aa0568effc77eebe1392ea03b4 100644 (file)
@@ -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>
index 1985fe3c94171d4b1c1e8ea99827fef349a685eb..4e0294f024fb8a975fc190735569f185cc54a200 100644 (file)
@@ -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>
index 93ddd1e8740bca5cb1326a071a0e38f1e1af6a2c..63865578f45994a60d93ce58632bd7547fa145d7 100644 (file)
@@ -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 {};
index f22347a0490f1adb3fbe5b4bc6d94d327bf1b3fd..7e3e9883adf9aa2ca81971bb125d42c1ce3e0c8a 100644 (file)
@@ -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 {};
index 1f5c5c1c3de3bd693aa467334e6921d83f5da21e..52c0a42244dd2c3465dfd8720e7fd6c177747896 100644 (file)
@@ -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* } } }
index 74397f778ccdb58671e79052817d226105a05eb8..8b41fc1521e6187f7e4832cc15eb5afb5f23e013 100644 (file)
@@ -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* } } }
index 2041d778b9a63638d34a72e63dc5ed6c821b7bed..f738dd7a4cce1f5dea4597b40149f59cc4c9a545 100644 (file)
@@ -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 {
index 2d15abbf96124c91699e9cd1c0c513772ca08408..c6714eabdeb75bf0842b39b637de77fe1ef8f4d5 100644 (file)
@@ -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;
index bea8ce01974163ce014b6503767bb05c85031478..7168c0d27ba1d290e9c58d1a4c2dff5ebcdedc0c 100644 (file)
@@ -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;
index aaff2b4eb68be2cce8600e70e53818bc35adec5a..9e1da9f4fbb31659de3645ed2f515f08e757c619 100644 (file)
@@ -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;
index 538c5cbfae25e0900bbfbd269e4b467cf20f8307..7ef000564d52fe5df97ed88edc8ab0f03f1aedea 100644 (file)
@@ -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 {};
index 42f8deac5370f6150f271bf6a9a7b96e0984e4d1..ee9a92a5c8b2f0d467529c69476a409478733f52 100644 (file)
@@ -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 {};
index f0b83dbe9299ba0f951340b1cf25984f59be630f..af92f611e269a4cf54f75fe8e8ee2ce24eb066aa 100644 (file)
@@ -1,4 +1,5 @@
 // Test for mangling of template args in a typename type.
+// { dg-additional-options -fabi-compat-version=0 }
 
 struct A
 {
index 4be2e0b03fc92ddd2e8f054c6f3a418aac2d1ad4..165260dd0631d2531f1e1d1fb43b3961ef6429b7 100644 (file)
@@ -1,5 +1,6 @@
 // PR c++/39095
 // { dg-do compile }
+// { dg-additional-options -fabi-compat-version=0 }
 
 struct B
 {
index 6ae0113a27b9c273bf0d7a36064baa4e18c63bd7..4c5b33b8b4d174c61d4d5fe47528388819615b31 100644 (file)
@@ -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;
index 8c77f1f0d09586c553a67fc84c6d1ce72752bcf9..1b1f89833fed7263d15bc5b13738c34d0ed81d98 100644 (file)
@@ -1,4 +1,5 @@
 // Testcase for mangling very long names.
+// { dg-additional-options -fabi-compat-version=0 }
 
 #define N \
 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm
index 08c3bc0a19b69c5a5b9b0f1a9a779e9a2b85f028..bee16b0c828c39a5a569b1c9a9d90f8b5a44dad6 100644 (file)
@@ -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 {};
index 78d993344880754dd61b303e186e96cbf6d7b00a..a279227a54592d14cbf5d18f574b557dff606e12 100644 (file)
@@ -1,5 +1,6 @@
 // PR c++/38600
 // { dg-final { scan-assembler "_Z3barIiE1AIX3fooIT_EEEv" } }
+// { dg-additional-options -fabi-compat-version=0 }
 
 template<void (*)()> struct A {};
 
index aaace6570a2510090c32a7ec6c60b3e39c3816de..1acfc879b96a92e1586b94a6948ae26661945cfe 100644 (file)
@@ -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" } }
 
index 4dd87e84c108b4b0fde520e0fa8a6decaa2ac46e..c6f70d78f4606684a40ef4f58f41865fb2fc7be4 100644 (file)
@@ -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_" } }
index a36f98127cc5fb68146cf5cacdfd4c6af797fa8e..520edc250b668d2e34e2160d5e3a431fa9cf1b04 100644 (file)
@@ -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" } }
 
index a7032a0b24cb32f32ffc545e7f3733bf1f2ef205..898565ac5720acc7be6312654174abd3f4495b6c 100644 (file)
@@ -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" } }
index 4dfa425f6cd97057104099ed6256f44f3dda83aa..76b5ba463a0159e88e00a24943f796f722c39b3c 100644 (file)
@@ -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; }
index 8454148421cca25e947a0be0c066aecc900f5f4a..73957e117c9a01c5c9e53b95aa82a080d2695148 100644 (file)
@@ -1,4 +1,5 @@
 // PR c++/45008
+// { dg-additional-options -fabi-compat-version=0 }
 
 template <typename T>
 struct A
index bdedb0ab3b3c0738b22c78fc8c8aabb3f9698777..52cdadde9e1b6ba99d808ac5427273358a8fd098 100644 (file)
@@ -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" }
index fddc88d0ad450efec8135c89136438cbf37c3952..2986dd7354b3baed72b537dae93224e200d5eb10 100644 (file)
@@ -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>
index 3bb5e9ab7e348d2c89c750e463cd20c53fa7632b..09d822ea62348cf7e4be6b58e335e62ed17c8ad5 100644 (file)
@@ -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);
index f9afa1ad0b26a1b0aa81d77fa59bb9a392353ae8..3f86c516d13d2952e3eb0ad5c766c384dcfc51cc 100644 (file)
@@ -1,5 +1,6 @@
 // Testcase for 'this' mangling
 // { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
 
 struct B
 {
index fae013a2635b8b7babc99edf5d5a0a64cf957ee6..756373696c7355b079e236d391bf87fd6a07f617 100644 (file)
@@ -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
index 99a08730fbaab627e5791b068825ab900663b3cb..e0e08485eeb9951bcd03df956ec5c76fbdf992db 100644 (file)
@@ -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) {}
index 90566c2198de49034001f2d6dc0cf02f7bee2741..68abc9dad26a74d56fa96c6418a5ba7064f0b0b3 100644 (file)
@@ -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() { }
index e7c2c747a9b7b579c3561d07719b04322259955a..a2b9f2c18338554bff295f63a6ef69e07ac3e1eb 100644 (file)
@@ -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;
index 1e7eca042bfbfde2f34dafa8ff5d4c41b505e270..b42b58dd87d8f9d849937240a5f7014a666f87e2 100644 (file)
@@ -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\]" } }
index 727fd7586f37f8fdf931b23316379cef39df98b6..54090399d32ae7fea085e083a176bac856db81b9 100644 (file)
@@ -1,4 +1,5 @@
 // { dg-do compile { target c++11 } }
+// { dg-additional-options -fabi-compat-version=0 }
 
 bool b;
 int i;
index ba1d3bc31822779a21a89b31bfa0ac93c0c23d4d..12cb071fe8b67dd1d884bf08af708648f53d527c 100644 (file)
@@ -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_" } }
index 72ea83444c825e5f7a521114a91fabafa7829df3..2d5d3a0aee1f1af0ec4598ed9ae09cd07cdd675a 100644 (file)
@@ -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_" } }
index 5c66db5581d3f63ceb733c1053e2ffa271a9e498..f6ea7fc7694205dc7ea827eddae508d714041002 100644 (file)
@@ -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_" } }
index 46cf377ebc7c2d234e0fe7825e1d2723a9d975b4..09b614956ed25ee524a97a7b6f8541c1acb2623d 100644 (file)
@@ -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);
index d2c90b43a2d415870caaef007439d77d7fa31c06..2ed0bbf7a2bc89a7a2c49f638cb090027743df94 100644 (file)
@@ -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 {
index ba0befddc50304b6d3e28530d0074e3e14d24f29..43f72909249f5fbcefa9f14b8be09ea0f2ae219a 100644 (file)
@@ -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; }
index 280fe2499802a14d252862b2375f02b2bab5ce93..72403bbfc3bb946d493072e0d69b8491a3b425e5 100644 (file)
@@ -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)));
index f7e893a558a93a3735e6d599b8b433c297527111..c835ce2f33090a198cef4ae3128b48f919b05209 100644 (file)
@@ -1,5 +1,5 @@
 // PR c++/51854
-// { dg-options "" }
+// { dg-options "-fabi-compat-version=0" }
 
 template <unsigned N> struct A;
 
index 2ae336e42a34a5efcfea58b0363ecad80c34e524..84ad20e90aacb313e535a24259c9b95e4b827a6c 100644 (file)
@@ -1,5 +1,6 @@
 // PR c++/56237
 // { dg-do compile }
+// { dg-additional-options -fabi-compat-version=0 }
 
 void *p[4];
 
index db541ca1902b9310e80f801977372629d70ebfa4..fe2ca9f82a9a4b19322c9560e09990a601a39eb7 100644 (file)
@@ -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\]" } }
index a48efd07ae7336d82bbf32da0339fe3344f9a419..a22421a326d2dfded37024a47ce3de0d96da5a6e 100644 (file)
@@ -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\]" } }
index d6a58a35b82871c0a98121506960e95e37c3a0f4..773691a887cf7733e1cbe37fb0861beacb969de7 100644 (file)
@@ -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
 {
index 778cda70dd12d25e790ef7a0e994e30a23868ed4..9c429850eee935fa9c9de99cff95e6ac6670d752 100644 (file)
@@ -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;
index 13169c2797dea63fb732e8225040b0b3753ef9f5..f16433164c0a404bdf91113df4c60e7845f06ed0 100644 (file)
@@ -1,5 +1,6 @@
 // PR c++/64898
 // { dg-final { scan-assembler-not "_Z6foovar" } }
+// { dg-additional-options -fabi-compat-version=0 }
 
 template <class> void f()
 {
index 94ac08e30ce8b92c3300cd731b54435d090acc79..918eaa9ff8a3c925ede06ff5675b1e60b4a7d270 100644 (file)
@@ -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>;
index 3e16eeb62d049d33f7bc22d011254451f48cde8b..3ffa39d466547788b5487e77c485dc33bd8b9808 100644 (file)
@@ -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; }
index dea3eeca022ad309a3d26824bf2516432912b357..4dbe765d1582cb275d85fbd0eb8163eb77cc5256 100644 (file)
@@ -1,4 +1,5 @@
 // { dg-do compile { target c++2a } }
+// { dg-additional-options -fabi-compat-version=0 }
 
 struct A1 { char c[5]; };
 
index 14c65a24da866c8a619ef587fa71c30a4e183619..c2c8fb57471b874b0849450af88fcdbdb8820215 100644 (file)
@@ -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; }
index 39c987d73c237e0a08f4d2bf36c4227d420ca40e..197727c5ad1368606af2fa71a62f62e823b6062c 100644 (file)
@@ -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 { };
index 038befa8f7dbca24e9f5e77de998b95d2b01e985..92747c4432a0b219290ec87d8b747ce5fb32e518 100644 (file)
@@ -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
 {
index 308865bd2c6f55712432a0b8cdf3c98e6d2a9f4f..9581451c25d4611d6b1d8402e80663875bddf5c1 100644 (file)
@@ -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]; };
 
index 2a5322a37c37211aec671391378faaf7b4a7b0dd..c226307c59815164fde7fb2bd3f086a6f21723cb 100644 (file)
@@ -1,4 +1,5 @@
 // { dg-do compile { target c++2a } }
+// { dg-additional-options -fabi-compat-version=0 }
 
 struct A
 {
index 4e1c63290396d5daad66d178e69252880284b4ff..7451ce814953a5f6abb87ff9c78e238f16e0d8dc 100644 (file)
@@ -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;};
 
index f2661997a33b70a7eadc7eeff12d448bf67ad7fd..b7619ed3159807502d033d3a330d6b0e88df0270 100644 (file)
@@ -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;
index fe326e6c689657f3da247a4cf8ee47f857a29803..a87eca8f9d9ea16f87cf8643ef93f1d34f576bb3 100644 (file)
@@ -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:
index 1181dc82f565e8e3e1cb4bf1470c1c06f1b8cebd..30d1a1623d365d2b2e5e96dc3cda1d8d999e9e9b 100644 (file)
@@ -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
 {
index 63c4d779e9f1ca7f2d8a7716187fa96559a3bb5e..ac332c651072cd50ea97df95ad3d26ea82e0a84c 100644 (file)
@@ -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 { };
index 6a073588aae572c884c08a7b51db5e1557d22a02..aa0e17dba1e2f8d7a8576bdc148244381f7eb26c 100644 (file)
@@ -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>
index f3ededfb4d0611a496c8a5de7733ee13e683414b..941c58a7f19cd5c2ef345011f56d6db641d84911 100644 (file)
@@ -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) {}