[clang] [Clang] Fix isWeakImported() to traverse redeclaration chain for avai… (PR #181482)

Volodymyr Sapsai via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 15 12:47:42 PDT 2026


================
@@ -0,0 +1,8 @@
+// Mimics a class like UTType that has availability attrs for multiple platforms.
+// The 'macos' attr comes before 'ios', so getAttr<AvailabilityAttr>() returns
+// 'macos' first. When mergeInheritableAttributes copies only the first attr
+// across PCM boundaries, the 'ios' attr is lost on the @class redeclaration.
----------------
vsapsai wrote:

We have a chain of calls `mergeDeclAttributes` -> `mergeDeclAttribute` -> `mergeAvailabilityAttr`. And in SemaDeclObjC.cpp we call `mergeDeclAttributes` in `ActOnStartClassInterface` and `ActOnForwardClassDeclaration`. I haven't investigated the logic carefully but I think the bug is in not propagating or merging availability attribute properly.

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


More information about the cfe-commits mailing list