[PATCH] D59223: Objective-C++11: Support static_assert() in @interface/@implementation ivar lists and method declarations

Nico Weber via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 11 10:48:11 PDT 2019


thakis created this revision.
thakis added a reviewer: erik.pilkington.

This adds support for static_assert() (and _Static_assert()) in @interface/@implementation ivar lists and in @interface method declarations.

It was already supported in @implementation blocks outside of the ivar lists.

The assert AST nodes are added at file scoped, matching where other (non-Objective-C) declarations at @interface / @implementation level go (cf `allTUVariables`).

Also add a `__has_feature(objc_static_assert)` that's always true after this patch, so it's possible to check if this is supported.


https://reviews.llvm.org/D59223

Files:
  clang/include/clang/Basic/Features.def
  clang/lib/Parse/ParseDecl.cpp
  clang/lib/Parse/ParseObjc.cpp
  clang/lib/Sema/SemaExpr.cpp
  clang/test/Parser/objc-static-assert.m
  clang/test/Parser/objc-static-assert.mm

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59223.190123.patch
Type: text/x-patch
Size: 5859 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190311/cfbfe655/attachment-0001.bin>


More information about the cfe-commits mailing list