Author: nico Date: Tue Oct 8 12:14:34 2019 New Revision: 374103 URL: http://llvm.org/viewvc/llvm-project?rev=374103&view=rev Log: Try to get readability-deleted-default.cpp to pass on Windows.
In MS compatibility mode, "extern inline void g()" is not a redundant declaration for "inline void g()", because of redeclForcesDefMSVC() (see PR19264, r205485). To fix, run the test with -fms-compatiblity forced on and off and explicit check for the differing behavior for extern inline. Final bit of PR43593. Differential Revision: https://reviews.llvm.org/D68640 Modified: clang-tools-extra/trunk/test/clang-tidy/readability-redundant-declaration.cpp Modified: clang-tools-extra/trunk/test/clang-tidy/readability-redundant-declaration.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/readability-redundant-declaration.cpp?rev=374103&r1=374102&r2=374103&view=diff ============================================================================== --- clang-tools-extra/trunk/test/clang-tidy/readability-redundant-declaration.cpp (original) +++ clang-tools-extra/trunk/test/clang-tidy/readability-redundant-declaration.cpp Tue Oct 8 12:14:34 2019 @@ -2,6 +2,21 @@ // RUN: -config="{CheckOptions: \ // RUN: [{key: readability-redundant-declaration.IgnoreMacros, \ // RUN: value: 0}]}" +// +// With -fms-compatibility and -DEXTERNINLINE, the extern inline shouldn't +// produce additional diagnostics, so same check suffix as before: +// RUN: %check_clang_tidy %s readability-redundant-declaration %t -- \ +// RUN: -config="{CheckOptions: \ +// RUN: [{key: readability-redundant-declaration.IgnoreMacros, \ +// RUN: value: 0}]}" -- -fms-compatibility -DEXTERNINLINE +// +// With -fno-ms-compatiblity, DEXTERNINLINE causes additional output. +// (The leading ',' means "default checks in addition to NOMSCOMPAT checks.) +// RUN: %check_clang_tidy -check-suffix=,NOMSCOMPAT \ +// RUN: %s readability-redundant-declaration %t -- \ +// RUN: -config="{CheckOptions: \ +// RUN: [{key: readability-redundant-declaration.IgnoreMacros, \ +// RUN: value: 0}]}" -- -fno-ms-compatibility -DEXTERNINLINE extern int Xyz; extern int Xyz; // Xyz @@ -74,6 +89,8 @@ inline void g(); // g // CHECK-MESSAGES: :[[@LINE-1]]:13: warning: redundant 'g' declaration // CHECK-FIXES: {{^}}// g{{$}} +#if defined(EXTERNINLINE) extern inline void g(); // extern g -// CHECK-MESSAGES: :[[@LINE-1]]:20: warning: redundant 'g' declaration -// CHECK-FIXES: {{^}}// extern g{{$}} +// CHECK-MESSAGES-NOMSCOMPAT: :[[@LINE-1]]:20: warning: redundant 'g' declaration +// CHECK-FIXES-NOMSCOMPAT: {{^}}// extern g{{$}} +#endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits