================
@@ -40,8 +40,12 @@ let CategoryName = "Parse Issue" in {
 def ext_empty_translation_unit : Extension<
   "ISO C requires a translation unit to contain at least one declaration">,
   InGroup<DiagGroup<"empty-translation-unit">>;
-def warn_cxx98_compat_top_level_semi : Warning<
-  "extra ';' outside of a function is incompatible with C++98">,
+def warn_cxx98_compat_extra_semi : Warning<
+  "%select{|||multiple }0extra ';' %select{"
+  "outside of a function|"
+  "inside a %1|"
+  "inside instance variable list|"
----------------
keinflue wrote:

I am also not very familiar with Objective-C, but I added a test case for the 
"inside instance variable list" of the `ext_extra_semi` diagnostic.

For the `warn_cxx98_compat_extra_semi` and `ext_extra_semi_cxx11` diagnostics, 
this variant can not happen. The other variants will still occur in usual C++ 
constructs, but not ObjC-specific constructs. I don't think this is usually 
tested twice with both `-x c++`/`-x objective-c++`.

This test case made me realize though, that maybe it would be a good idea to 
also apply the new C++ behavior of allowing semicolons inside classes to 
Objective-C variable instance lists as well. I don't think there is any 
specification or reference for this, so maybe someone familiar with Objective-C 
could give the opinion? I tested GCC and it doesn't provide a warning for this 
with `-Wextra-semi` or `-pedantic` at all.

https://github.com/llvm/llvm-project/pull/172209
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to