summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp
diff options
context:
space:
mode:
authorEdwin Vane <edwin.vane@intel.com>2013-05-16 14:55:05 +0000
committerEdwin Vane <edwin.vane@intel.com>2013-05-16 14:55:05 +0000
commit799ad8e212fd619a1b740e93ef448c948b1cdbb3 (patch)
treee06fdc8fa926a2fb257ddff72a48583c4e65364b /clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp
parent1373c5cd6dc5fe0c4e8f22e7ddb28fd3dc5cb493 (diff)
downloadbcm5719-llvm-799ad8e212fd619a1b740e93ef448c948b1cdbb3.tar.gz
bcm5719-llvm-799ad8e212fd619a1b740e93ef448c948b1cdbb3.zip
cpp11-migrate: Check for valid NULL macros from macro arg expansions
The recent improvement to the Use Nullptr Transform for macro arg expansions wasn't testing that only allowed NULL macros used in macro args can be transformed. This revision replaces a TODO to that effect. Fixes PR15955. llvm-svn: 182014
Diffstat (limited to 'clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp')
-rw-r--r--clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp b/clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp
index ac4b8e493b2..38e44d21e23 100644
--- a/clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp
+++ b/clang-tools-extra/cpp11-migrate/UseNullptr/NullptrActions.cpp
@@ -286,10 +286,16 @@ private:
const SrcMgr::SLocEntry *E = &SM.getSLocEntry(LocInfo.first);
const SrcMgr::ExpansionInfo &Expansion = E->getExpansion();
+ SourceLocation OldArgLoc = ArgLoc;
ArgLoc = Expansion.getExpansionLocStart();
if (!Expansion.isMacroArgExpansion()) {
- // TODO: Insert test for user-defined null macro here.
- return MacroLoc.isFileID();
+ if (!MacroLoc.isFileID())
+ return false;
+
+ StringRef Name =
+ Lexer::getImmediateMacroName(OldArgLoc, SM, Context.getLangOpts());
+ return std::find(UserNullMacros.begin(), UserNullMacros.end(), Name) !=
+ UserNullMacros.end();
}
MacroLoc = SM.getImmediateExpansionRange(ArgLoc).first;
OpenPOWER on IntegriCloud