C++-11 [qoi]. Do not warn on missing 'verride' on use of
macros in user code when macros themselves are defined
in a system header. rdar://18295240
llvm-svn: 220992
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 47a8492..adbcafe 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -1905,6 +1905,12 @@
isa<CXXDestructorDecl>(MD))
return;
+ if (MD->getLocation().isMacroID()) {
+ SourceLocation MacroLoc = getSourceManager().getSpellingLoc(MD->getLocation());
+ if (getSourceManager().isInSystemHeader(MacroLoc))
+ return;
+ }
+
if (MD->size_overridden_methods() > 0) {
Diag(MD->getLocation(), diag::warn_function_marked_not_override_overriding)
<< MD->getDeclName();