This PR contains 3 commits that encapsulate in order
Preparations in the Lexer and the like to take const objects rather than non-const ones (probably wasn't needed until I started tinkering with them).
Moves most functions in PlistDiagnostics.cpp to a new class for easier reading.
Implements the actual macro expansion in a single commit.
All of these patches are cherry-picked from the official repository, but have been squashed in order not to clutter our commit history. In case we'd like to preserve those commits, I also have a separate branch on which they aren't squashed (https://github.com/Szelethus/clang/tree/ctu-clang7-macro-expansion), and they also have the same commit message as in the official repository. I haven't bothered with them too much while squashing.
This PR contains 3 commits that encapsulate in order
Lexer
and the like to take const objects rather than non-const ones (probably wasn't needed until I started tinkering with them).PlistDiagnostics.cpp
to a new class for easier reading.All of these patches are cherry-picked from the official repository, but have been squashed in order not to clutter our commit history. In case we'd like to preserve those commits, I also have a separate branch on which they aren't squashed (https://github.com/Szelethus/clang/tree/ctu-clang7-macro-expansion), and they also have the same commit message as in the official repository. I haven't bothered with them too much while squashing.