On Oct 31, 2014, at 4:28 PM, Nico Weber <[email protected]> wrote:
> Thanks! > > Here's an example where the method name isn't from a macro expansion, but > it's still a macro argument. Could the warning be suppressed here too? In r221172. - Fariborz > > ..\..\win8/metro_driver/chrome_app_view_ash.h(65,15) : warning(clang): > 'Initialize' overrides a member function but is not marked 'override' > [-Winconsistent-missing-override] > IFACEMETHOD(Initialize)(winapp::Core::ICoreApplicationView* view); > ^ > C:\b\depot_tools\win_toolchain\vs2013_files\win8sdk/Include/um\combaseapi.h(217,58) > : note(clang): expanded from macro 'IFACEMETHOD' > #define IFACEMETHOD(method) __override STDMETHOD(method) > ^ > C:\b\depot_tools\win_toolchain\vs2013_files\win8sdk/Include/um\combaseapi.h(205,89) > : note(clang): expanded from macro 'STDMETHOD' > #define STDMETHOD(method) virtual COM_DECLSPEC_NOTHROW HRESULT > STDMETHODCALLTYPE method > > ^ > C:\b\depot_tools\win_toolchain\vs2013_files\win8sdk/Include/winrt/Windows.ApplicationModel.Core.h(1179,59) > : note(clang): overridden virtual function is here > virtual HRESULT STDMETHODCALLTYPE Initialize( > ^ > > On Fri, Oct 31, 2014 at 12:56 PM, Fariborz Jahanian <[email protected]> > wrote: > Author: fjahanian > Date: Fri Oct 31 14:56:27 2014 > New Revision: 220992 > > URL: http://llvm.org/viewvc/llvm-project?rev=220992&view=rev > Log: > 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 > > Added: > cfe/trunk/test/SemaCXX/Inputs/override-system-header.h > cfe/trunk/test/SemaCXX/override-in-system-header.cpp > Modified: > cfe/trunk/lib/Sema/SemaDeclCXX.cpp > > Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp?rev=220992&r1=220991&r2=220992&view=diff > ============================================================================== > --- cfe/trunk/lib/Sema/SemaDeclCXX.cpp (original) > +++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp Fri Oct 31 14:56:27 2014 > @@ -1905,6 +1905,12 @@ void Sema::DiagnoseAbsenceOfOverrideCont > 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(); > > Added: cfe/trunk/test/SemaCXX/Inputs/override-system-header.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/Inputs/override-system-header.h?rev=220992&view=auto > ============================================================================== > --- cfe/trunk/test/SemaCXX/Inputs/override-system-header.h (added) > +++ cfe/trunk/test/SemaCXX/Inputs/override-system-header.h Fri Oct 31 > 14:56:27 2014 > @@ -0,0 +1,3 @@ > +// override-system-header.h to test out 'override' warning. > +// rdar://18295240 > +#define END_COM_MAP virtual unsigned AddRef(void) = 0; > > Added: cfe/trunk/test/SemaCXX/override-in-system-header.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/override-in-system-header.cpp?rev=220992&view=auto > ============================================================================== > --- cfe/trunk/test/SemaCXX/override-in-system-header.cpp (added) > +++ cfe/trunk/test/SemaCXX/override-in-system-header.cpp Fri Oct 31 14:56:27 > 2014 > @@ -0,0 +1,17 @@ > +// RUN: %clang_cc1 -std=c++11 -isystem %S/Inputs %s -verify > +// expected-no-diagnostics > +// rdar://18295240 > + > +#include <override-system-header.h> > + > +struct A > +{ > + virtual void x(); > + END_COM_MAP; > +}; > + > +struct B : A > +{ > + virtual void x() override; > + END_COM_MAP; > +}; > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
