steveire added a comment. Here's some more failing testcases.
class Aa; class A; struct timespec; // Crash // #define UL unsigned long // Transformed, but with error reported: bool foo(Aa const &); // Not transformed (uppercase) template <typename T> bool bar(T const &); template <typename TYPE> bool bat(TYPE const &); bool bing(A const &); // const inserted after struct. Does not compile void fot(struct timespec const t); // Not transformed template <typename Type> void tov(typename Type::SubType const tu); // const inserted after typename. Does not compile template <typename Type> void tor(typename Type::SubType const &tu); template <typename Type> void top(typename Type::SubType const *tu); // const inserted after `TYPE::` (because uppercase?) template <typename TYPE> void top(typename TYPE::SubType const *tu); This time I used BasedOnStyle: LLVM PointerAlignment: Left ConstPlacement: West It seems to me that the heuristic "if the token is all uppercase assume it's a macro containing a * or &" is not the right heuristic. The mechanism of allowing the user to specify problematic macros in the config seems to make more sense. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D69764/new/ https://reviews.llvm.org/D69764 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits