forked from OSchip/llvm-project
80a82761bd
It's generally not possible to know if 'a' '*' 'b' is a multiplication expression or a variable declaration with a purely lexer-based approach. The formatter currently uses a heuristic that classifies this token sequence as a multiplication in rhs contexts (after '=' or 'return') and as a declaration else. Because of this, it gets bit tests in ifs, such as "if (a & b)" wrong. However, declarations in ifs always have to be followed by '=', so this patch changes the formatter to classify '&' as an operator if it's at the start of an if statement. Before: if (a& b) if (int* b = f()) Now: if (a & b) if (int* b = f()) llvm-svn: 172731 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
Format.cpp | ||
Makefile | ||
UnwrappedLineParser.cpp | ||
UnwrappedLineParser.h |