[Format/ObjC] Support NS_ASSUME_NONNULL_BEGIN and FOUNDATION_EXPORT in ObjC language...
authorBen Hamilton <benhamilton@google.com>
Fri, 26 May 2023 18:44:21 +0000 (12:44 -0600)
committerBen Hamilton <benhamilton@google.com>
Tue, 30 May 2023 17:12:03 +0000 (11:12 -0600)
commit85670ac86813b170c9301aa477421c56a71a7e1e
tree7f04accd8a3c84991ef83894bc915620110f0fc9
parent5c000df21531fc4b614cf80d29c5f05a664aaa41
[Format/ObjC] Support NS_ASSUME_NONNULL_BEGIN and FOUNDATION_EXPORT in ObjC language guesser

This adds to the ObjC language guesser a few more common macros used
in ObjC headers. These can help distinguish ObjC headers which
otherwise lack ObjC types from C++ headers.

Contributed by danblakemore.

Tested: New tests included. Ran unit tests with:
  ```
  % cmake -S llvm -B build -G Ninja && \
    ninja -C build FormatTests && \
    ./build/tools/clang/unittests/Format/FormatTests --gtest_filter="*FormatTestObjC*"

  (snip)
  [----------] 24 tests from FormatTestObjC (265 ms total)

  [----------] Global test environment tear-down
  [==========] 26 tests from 2 test suites ran. (270 ms total)
  [  PASSED  ] 26 tests.
  ```

Reviewed By: MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D151578
clang/lib/Format/Format.cpp
clang/test/Format/dump-config-objc-macros.h [new file with mode: 0644]
clang/unittests/Format/FormatTestObjC.cpp