c-opts.c (c_common_post_options): Warn about useless -Wabi.
authorJason Merrill <jason@redhat.com>
Wed, 13 Jun 2018 21:05:34 +0000 (17:05 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 13 Jun 2018 21:05:34 +0000 (17:05 -0400)
* c-opts.c (c_common_post_options): Warn about useless -Wabi.

(c_common_handle_option) [OPT_Wabi_]: Remove flag_abi_compat_version
handling.

From-SVN: r261571

gcc/c-family/ChangeLog
gcc/c-family/c-opts.c
gcc/testsuite/g++.dg/abi/pr83489.C
gcc/testsuite/obj-c++.dg/bitfield-1.mm
gcc/testsuite/obj-c++.dg/layout-1.mm

index 72f24fdb772018d36d58e8dc1669a274e9517a66..a1c20973ecf296ccaefe0338c4e8027584168cba 100644 (file)
@@ -1,5 +1,9 @@
 2018-06-13  Jason Merrill  <jason@redhat.com>
 
+       * c-opts.c (c_common_post_options): Warn about useless -Wabi.
+       (c_common_handle_option) [OPT_Wabi_]: Remove flag_abi_compat_version
+       handling.
+
        PR c++/86094 - wrong code with defaulted move ctor.
        * c-opts.c (c_common_post_options): Bump the current ABI version to
        13.  Set warn_abi_version and flag_abi_compat_version to the current
index 107359ec20dd70efe087944830e0042c1b7201c8..bbcb1bb1a9c606a262a1aa362471388987629d06 100644 (file)
@@ -417,8 +417,6 @@ c_common_handle_option (size_t scode, const char *arg, int value,
          value = 2;
        }
       warn_abi_version = value;
-      if (flag_abi_compat_version == -1)
-       flag_abi_compat_version = value;
       break;
 
     case OPT_fcanonical_system_headers:
@@ -942,7 +940,17 @@ c_common_post_options (const char **pfilename)
     {
       warn_abi_version = latest_abi_version;
       if (flag_abi_version == latest_abi_version)
-       flag_abi_compat_version = abi_compat_default;
+       {
+         if (warning (OPT_Wabi, "-Wabi won't warn about anything"))
+           {
+             inform (input_location, "-Wabi warns about differences "
+                     "from the most up-to-date ABI, which is also used "
+                     "by default");
+             inform (input_location, "use e.g. -Wabi=11 to warn about "
+                     "changes from GCC 7");
+           }
+         flag_abi_compat_version = abi_compat_default;
+       }
       else
        flag_abi_compat_version = latest_abi_version;
     }
index aee04eca9d81bbc65e8759afb085cce9363bad68..b6c82ef16e615e23e5f430de9e4b19f3cd5e978f 100644 (file)
@@ -1,5 +1,5 @@
 // PR c++/83489
-// { dg-options "-Wabi" }
+// { dg-options "-Wabi=11" }
 
 struct A
 {
index a63761904b535c3ea4e8e9843816030f7a9e23f2..084d2cb09166059bd1ba0148e58902a77aa6c3ad 100644 (file)
@@ -5,7 +5,7 @@
    superclasses should be removed).  */
 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
 /* { dg-do run } */
-/* { dg-options "-Wpadded -Wabi" } */
+/* { dg-options "-Wpadded -Wabi=8" } */
 
 /* Leave blank lines here to keep warnings on the same lines.  */
 
index 33879ad17a4c9ae67cf7032146047e7e8beb8700..89921236ec3e8b8043747d8a5854acb073e32501 100644 (file)
@@ -1,7 +1,7 @@
 /* Ensure that we do not get bizarre warnings referring to
    __attribute__((packed)) or some such.  */
 /* { dg-do compile } */
-/* { dg-options "-Wpadded -Wpacked -Wabi" } */
+/* { dg-options "-Wpadded -Wpacked -Wabi=8" } */
 
 #include "../objc-obj-c++-shared/TestsuiteObject.h"