[clang-format] Allow configuring list of function-like macros that resolve to a type
authorFrancois Ferrand <thetypz@gmail.com>
Wed, 29 May 2019 16:30:47 +0000 (16:30 +0000)
committerFrancois Ferrand <thetypz@gmail.com>
Wed, 29 May 2019 16:30:47 +0000 (16:30 +0000)
commitc5227a1f53103d6c0cbcb5a59da84356208df0dd
tree025607de43508ca352e0d14c6b10a36c4b51d09d
parent308b7139b1d8e2374014c37f170b30197271e958
[clang-format] Allow configuring list of function-like macros that resolve to a type

Summary:
Adds a `TypenameMacros` configuration option that causes certain identifiers to be handled in a way similar to `typeof()`.

This is enough to:
- Prevent misinterpreting declarations of pointers to such types as expressions (`STACK_OF(int) * foo` -> `STACK_OF(int) *foo`),
- Avoid surprising line breaks in variable/struct field declarations (`STACK_OF(int)\nfoo;` -> `STACK_OF(int) foo;`, see https://bugs.llvm.org/show_bug.cgi?id=30353).

Reviewers: Typz, krasimir, djasper

Reviewed By: Typz

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 361986
clang/docs/ClangFormatStyleOptions.rst
clang/include/clang/Format/Format.h
clang/lib/Format/Format.cpp
clang/lib/Format/FormatToken.h
clang/lib/Format/FormatTokenLexer.cpp
clang/lib/Format/TokenAnnotator.cpp
clang/unittests/Format/FormatTest.cpp