[clang] Support [[guarded_by(mutex)]] attribute inside C struct (PR #94216)

Arthur Eubanks via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 12 15:31:19 PDT 2024


aeubanks wrote:

this seems to have broken code like [this](https://crsrc.org/c/base/allocator/partition_allocator/src/partition_alloc/random.cc;drc=36293863bf9bbc8131797eb8f4d2bafe8af3de79;l=33) with
```
../../base/allocator/partition_allocator/src/partition_alloc/random.cc:33:69: error: invalid use of non-static data member 'lock_'
   33 |     internal::base::InsecureRandomGenerator instance_ PA_GUARDED_BY(lock_);
      |                                                                     ^~~~~
../../base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h:59:70: note: expanded from macro 'PA_GUARDED_BY'
   59 | #define PA_GUARDED_BY(x) PA_THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(x))
      |                                                                      ^
../../base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h:44:60: note: expanded from macro 'PA_THREAD_ANNOTATION_ATTRIBUTE__'
   44 | #define PA_THREAD_ANNOTATION_ATTRIBUTE__(x) __attribute__((x))
      |                                                            ^
../../base/allocator/partition_allocator/src/partition_alloc/random.cc:35:65: error: invalid use of non-static data member 'lock_'
   35 |         internal::base::InsecureRandomGenerator)] PA_GUARDED_BY(lock_) = {};
      |                                                                 ^~~~~
../../base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h:59:70: note: expanded from macro 'PA_GUARDED_BY'
   59 | #define PA_GUARDED_BY(x) PA_THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(x))
      |                                                                      ^
../../base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h:44:60: note: expanded from macro 'PA_THREAD_ANNOTATION_ATTRIBUTE__'
   44 | #define PA_THREAD_ANNOTATION_ATTRIBUTE__(x) __attribute__((x))
      |                                                            ^
```

is that intentional?

https://github.com/llvm/llvm-project/pull/94216


More information about the cfe-commits mailing list