diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2014-04-02 17:53:43 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2014-04-02 17:53:43 +0200 |
commit | b4e5b8bc1d6be0d53843ac68ba86da4d8cd0c2b0 (patch) | |
tree | 64c028ab67e2c8f1937e4d62e94c3c54713ad447 /compilerplugins | |
parent | 9db717d063ae60a56e2304e5bf53ae62652e3f97 (diff) |
Add compat::isInMainFile
Change-Id: I0e155c6c68a43020110a8e1c0cb29cabdcade454
Diffstat (limited to 'compilerplugins')
-rw-r--r-- | compilerplugins/clang/compat.hxx | 11 | ||||
-rw-r--r-- | compilerplugins/clang/literaltoboolconversion.cxx | 16 |
2 files changed, 16 insertions, 11 deletions
diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx index 1f025e70472f..3d265722c044 100644 --- a/compilerplugins/clang/compat.hxx +++ b/compilerplugins/clang/compat.hxx @@ -20,6 +20,7 @@ #include "clang/AST/Type.h" #include "clang/Basic/Diagnostic.h" #include "clang/Basic/DiagnosticIDs.h" +#include "clang/Basic/SourceManager.h" #include "llvm/ADT/StringRef.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/raw_ostream.h" @@ -101,6 +102,16 @@ inline unsigned getBuiltinCallee(clang::CallExpr const & expr) { #endif } +inline bool isInMainFile( + clang::SourceManager const & manager, clang::SourceLocation Loc) +{ +#if (__clang_major__ == 3 && __clang_minor__ >= 4) || __clang_major__ > 3 + return manager.isInMainFile(Loc); +#else + return manager.isFromMainFile(Loc); +#endif +} + inline unsigned getCustomDiagID( clang::DiagnosticsEngine & engine, clang::DiagnosticsEngine::Level L, llvm::StringRef FormatString) diff --git a/compilerplugins/clang/literaltoboolconversion.cxx b/compilerplugins/clang/literaltoboolconversion.cxx index c94e0d1b014b..4c3c3a4cee8f 100644 --- a/compilerplugins/clang/literaltoboolconversion.cxx +++ b/compilerplugins/clang/literaltoboolconversion.cxx @@ -151,17 +151,11 @@ bool LiteralToBoolConversion::VisitImplicitCastExpr( bool LiteralToBoolConversion::isFromCIncludeFile( SourceLocation spellingLocation) const { -#if (__clang_major__ == 3 && __clang_minor__ >= 4) || __clang_major__ > 3 - if (compiler.getSourceManager().isInMainFile(spellingLocation)) { - return false; - } -#else - if (compiler.getSourceManager().isFromMainFile(spellingLocation)) { - return false; - } -#endif - return StringRef(compiler.getSourceManager().getPresumedLoc(spellingLocation) - .getFilename()).endswith(".h"); + return !compat::isInMainFile(compiler.getSourceManager(), spellingLocation) + && (StringRef( + compiler.getSourceManager().getPresumedLoc(spellingLocation) + .getFilename()) + .endswith(".h")); } bool LiteralToBoolConversion::isMacroBodyExpansion(SourceLocation location) |