summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex/Pragma.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-04-30 23:10:40 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-04-30 23:10:40 +0000
commit3ffa61d576b05a3d0c4b2d35db75e810cc9cedbe (patch)
tree99f9c9232789df944fe85e3ac98c2d52a84d92ba /clang/lib/Lex/Pragma.cpp
parentcd2514dca6b7376c7be4ba4d867480d7a9cd82f6 (diff)
downloadbcm5719-llvm-3ffa61d576b05a3d0c4b2d35db75e810cc9cedbe.tar.gz
bcm5719-llvm-3ffa61d576b05a3d0c4b2d35db75e810cc9cedbe.zip
[modules] Add a mechanism to dump information about a macro.
Wire this up to "#pragma clang __debug macro <name>". llvm-svn: 236280
Diffstat (limited to 'clang/lib/Lex/Pragma.cpp')
-rw-r--r--clang/lib/Lex/Pragma.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Lex/Pragma.cpp b/clang/lib/Lex/Pragma.cpp
index 7093182239b..6facf4c80bf 100644
--- a/clang/lib/Lex/Pragma.cpp
+++ b/clang/lib/Lex/Pragma.cpp
@@ -875,6 +875,14 @@ struct PragmaDebugHandler : public PragmaHandler {
llvm::report_fatal_error("#pragma clang __debug llvm_fatal_error");
} else if (II->isStr("llvm_unreachable")) {
llvm_unreachable("#pragma clang __debug llvm_unreachable");
+ } else if (II->isStr("macro")) {
+ Token MacroName;
+ PP.LexUnexpandedToken(MacroName);
+ auto *MacroII = MacroName.getIdentifierInfo();
+ if (MacroII)
+ PP.dumpMacroInfo(MacroII);
+ else
+ PP.Diag(MacroName, diag::warn_pragma_diagnostic_invalid);
} else if (II->isStr("overflow_stack")) {
DebugOverflowStack();
} else if (II->isStr("handle_crash")) {
OpenPOWER on IntegriCloud