diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-04-30 23:10:40 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-04-30 23:10:40 +0000 |
commit | 3ffa61d576b05a3d0c4b2d35db75e810cc9cedbe (patch) | |
tree | 99f9c9232789df944fe85e3ac98c2d52a84d92ba /clang/lib/Lex/Pragma.cpp | |
parent | cd2514dca6b7376c7be4ba4d867480d7a9cd82f6 (diff) | |
download | bcm5719-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.cpp | 8 |
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")) { |