Summary:
Some valid pre-C++11 constructs change meaning when lexed in C++11
mode, e.g.
#define x(_a) printf("foo"_a);
(example from http://llvm.org/bugs/show_bug.cgi?id=16342). "foo"_a is treated as
a user-defined string literal when parsed in C++11 mode.
In order to deal with this correctly, we need to set lexing mode according to
which standard the code conforms to. We already have a configuration value for
this (FormatStyle.Standard), which seems to be appropriate to use in this case
as well.
Reviewers: klimek
CC: cfe-commits, gribozavr
Differential Revision: http://llvm-reviews.chandlerc.com/D1028
llvm-svn: 185149
|
||
|---|---|---|
| .. | ||
| BreakableToken.cpp | ||
| BreakableToken.h | ||
| CMakeLists.txt | ||
| Encoding.h | ||
| Format.cpp | ||
| FormatToken.h | ||
| Makefile | ||
| TokenAnnotator.cpp | ||
| TokenAnnotator.h | ||
| UnwrappedLineParser.cpp | ||
| UnwrappedLineParser.h | ||
| WhitespaceManager.cpp | ||
| WhitespaceManager.h | ||