From 3ffa61d576b05a3d0c4b2d35db75e810cc9cedbe Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 30 Apr 2015 23:10:40 +0000 Subject: [modules] Add a mechanism to dump information about a macro. Wire this up to "#pragma clang __debug macro ". llvm-svn: 236280 --- clang/lib/Lex/Pragma.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'clang/lib/Lex/Pragma.cpp') 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")) { -- cgit v1.2.3