[PATCH] D118525: [modules] Merge ObjC interface ivars with anonymous types.

Volodymyr Sapsai via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 7 13:43:16 PST 2022


vsapsai planned changes to this revision.
vsapsai added inline comments.
Herald added a project: All.


================
Comment at: clang/test/Modules/merge-anon-record-definition-in-objc.m:5
+// RUN: %clang_cc1 -fsyntax-only -F%t/Frameworks %t/test.m -Wno-objc-property-implementation -Wno-incomplete-implementation \
+// RUN:            -fmodules -fmodule-name=Target -fimplicit-module-maps -fmodules-cache-path=%t/modules.cache
+
----------------
vsapsai wrote:
> rjmccall wrote:
> > Do you want to test this in Objective-C++ mode as well?
> That's a good idea! Let me add that.
It turned out to be a great idea! Looks like Objective-C++ mode has exposed an actual issue. After skipping a bunch of "cannot be defined in a parameter type" I'm hitting "error: use of undeclared identifier 'kX'". And in non-modular case
```lang=objective-c++
// clang -fsyntax-only test.mm
@interface NSObject
@end
@interface TestSubject: NSObject {
@public
    enum { kEnumConstant = 0, } enumIvar;
}
@end

int test() {
    return kEnumConstant;
}
```
does not trigger any errors. So I believe there should be no errors in my test case too.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118525/new/

https://reviews.llvm.org/D118525



More information about the cfe-commits mailing list