[PATCH] Ignore contents of #if 0 blocks.
Manuel Klimek
klimek at google.com
Fri May 24 00:43:25 PDT 2013
================
Comment at: lib/Format/UnwrappedLineParser.h:233-237
@@ +232,7 @@
+ // #if/#else/#endif directives.
+ enum PPBranchKind {
+ PP_If, // Any #if, #ifdef, #ifndef, #elif, except for #if 0
+ PP_If0, // #if 0
+ PP_Else // #else
+ };
+
----------------
I'd go with two states (PP_Conditional and PP_Unreachable or something).
================
Comment at: lib/Format/UnwrappedLineParser.h:243
@@ +242,3 @@
+ // Holds the number of PP_If0 on PPStack.
+ int InsideIf0;
+
----------------
I'd go with a bool Unreachable or IgnoreUnwrappedLines or something similar, and keep track of all pp conditionals inside an unreachable branch as normal conditionals (they don't change anything).
================
Comment at: lib/Format/UnwrappedLineParser.cpp:368
@@ +367,3 @@
+void UnwrappedLineParser::parsePPElse() {
+ if (!PPStack.empty() && PPStack.back() != PP_Else) {
+ if (PPStack.back() == PP_If0)
----------------
I think we want to pop the stack in this case. If there's an error, I'd rather we stop ignoring code too early.
http://llvm-reviews.chandlerc.com/D855
More information about the cfe-commits
mailing list