From c3d0c82ab0ce17c684c0192f14059d8e4d63156c Mon Sep 17 00:00:00 2001
From: Manuel Klimek <klimek@google.com>
Date: Mon, 7 Jan 2013 09:34:28 +0000
Subject: [PATCH] Remove outdated FIXME and add explanation for error handling
 strategy while parsing #define's.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171717 91177308-0d34-0410-b5e6-96231b3b80d8
---
 lib/Format/UnwrappedLineParser.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/Format/UnwrappedLineParser.cpp b/lib/Format/UnwrappedLineParser.cpp
index 00710827c2a..70f33ad0315 100644
--- a/lib/Format/UnwrappedLineParser.cpp
+++ b/lib/Format/UnwrappedLineParser.cpp
@@ -29,8 +29,6 @@ public:
       : Line(Line), TokenSource(TokenSource), ResetToken(ResetToken),
         PreviousLineLevel(Line.Level), PreviousTokenSource(TokenSource) {
     TokenSource = this;
-    // FIXME: Back up all other state (errors, line indent, etc) and reset after
-    // parsing the macro.
     Line.Level = 0;
     Line.InPPDirective = true;
   }
@@ -173,6 +171,12 @@ void UnwrappedLineParser::parsePPDefine() {
   }
   addUnwrappedLine();
   Line.Level = 1;
+
+  // Errors during a preprocessor directive can only affect the layout of the
+  // preprocessor directive, and thus we ignore them. An alternative approach
+  // would be to use the same approach we use on the file level (no
+  // re-indentation if there was a structural error) within the macro
+  // definition.
   parseFile();
 }
 
-- 
GitLab