]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Revert "c++: signed __int128_t [PR108099]"
authorJason Merrill <jason@redhat.com>
Thu, 20 Apr 2023 03:25:39 +0000 (23:25 -0400)
committerJason Merrill <jason@redhat.com>
Thu, 20 Apr 2023 16:13:29 +0000 (12:13 -0400)
Given the remaining issues even after these patches, let's leave this bug
alone on the GCC 12 branch for now.

This reverts commit 32955c1c2246aa336d3fd2423c32546c39a6ca30.
This reverts commit 7b30f13b904f137c77e5180357af7917a3b47af0.

gcc/cp/decl.cc
gcc/testsuite/g++.dg/ext/int128-7.C [deleted file]
gcc/testsuite/g++.dg/ext/int128-8.C [deleted file]

index f514377dd424a4f7ee65415529449de773aedd76..ab9a009fb7e518889cb2a21a49c67714827eb73b 100644 (file)
@@ -12300,18 +12300,11 @@ grokdeclarator (const cp_declarator *declarator,
        {
          if (typedef_decl)
            {
-             pedwarn (loc, OPT_Wpedantic, "%qs specified with %qD",
-                      key, typedef_decl);
+             pedwarn (loc, OPT_Wpedantic, "%qs specified with %qT",
+                      key, type);
              ok = !flag_pedantic_errors;
-             if (is_typedef_decl (typedef_decl))
-               {
-                 type = DECL_ORIGINAL_TYPE (typedef_decl);
-                 typedef_decl = NULL_TREE;
-               }
-             else
-               /* PR108099: __int128_t comes from c_common_nodes_and_builtins,
-                  and is not built as a typedef.  */
-               type = TREE_TYPE (typedef_decl);
+             type = DECL_ORIGINAL_TYPE (typedef_decl);
+             typedef_decl = NULL_TREE;
            }
          else if (declspecs->decltype_p)
            error_at (loc, "%qs specified with %<decltype%>", key);
diff --git a/gcc/testsuite/g++.dg/ext/int128-7.C b/gcc/testsuite/g++.dg/ext/int128-7.C
deleted file mode 100644 (file)
index bf5e8c4..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-// PR c++/108099
-// { dg-do compile { target { c++11 && int128 } } }
-
-using i128 = signed __int128_t;        // { dg-error "specified with" }
diff --git a/gcc/testsuite/g++.dg/ext/int128-8.C b/gcc/testsuite/g++.dg/ext/int128-8.C
deleted file mode 100644 (file)
index 7e909d5..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-// PR c++/108099
-// { dg-do compile { target { c++11 && int128 } } }
-// { dg-options "" }
-
-using u128 = unsigned __int128_t;
-using s128 = signed __int128_t;
-template <typename T, T v> struct integral_constant {
-  static constexpr T value = v;
-};
-typedef integral_constant <bool, false> false_type;
-typedef integral_constant <bool, true> true_type;
-template <class T, class U>
-struct is_same : false_type {};
-template <class T>
-struct is_same <T, T> : true_type {};
-static_assert (is_same <__int128, s128>::value, "");
-static_assert (is_same <signed __int128, s128>::value, "");
-static_assert (is_same <__int128_t, s128>::value, "");
-static_assert (is_same <unsigned __int128, u128>::value, ""); // { dg-bogus "" "" { xfail *-*-* } }
-static_assert (is_same <__uint128_t, u128>::value, "");              // { dg-bogus "" "" { xfail *-*-* } }
-static_assert (sizeof (s128) == sizeof (__int128), "");
-static_assert (sizeof (u128) == sizeof (unsigned __int128), "");
-static_assert (s128(-1) < 0, "");
-static_assert (u128(-1) > 0, "");