[clang-format] Fixup #include guard indents after parseFile()
authorMark Zeren <mzeren@vmware.com>
Mon, 5 Feb 2018 14:35:54 +0000 (14:35 +0000)
committerMark Zeren <mzeren@vmware.com>
Mon, 5 Feb 2018 14:35:54 +0000 (14:35 +0000)
commit0dc13cdcae09b3691b60ed6255cd24be32cc96c1
tree71cab2c1a08ea0c4785177cf184d9fca34f614e9
parent0a1ff464e1b1bc021acc5cf461cc21d72c1df1a9
[clang-format] Fixup #include guard indents after parseFile()

Summary:
When a preprocessor indent closes after the last line of normal code we do not
correctly fixup include guard indents. For example:

  #ifndef HEADER_H
  #define HEADER_H
  #if 1
  int i;
  #  define A 0
  #endif
  #endif

incorrectly reformats to:

  #ifndef HEADER_H
  #define HEADER_H
  #if 1
  int i;
  #    define A 0
  #  endif
  #endif

To resolve this issue we must fixup levels after parseFile(). Delaying
the fixup introduces a new state, so consolidate include guard search
state into an enum.

Reviewers: krasimir, klimek

Reviewed By: krasimir

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D42035

llvm-svn: 324238
clang/lib/Format/UnwrappedLineParser.cpp
clang/lib/Format/UnwrappedLineParser.h
clang/unittests/Format/FormatTest.cpp