[clang] [CIR] Add support for global linkage and visibility (PR #141973)
Henrich Lauko via cfe-commits
cfe-commits at lists.llvm.org
Fri May 30 01:07:58 PDT 2025
================
@@ -276,4 +276,47 @@ def ConstPtrAttr : CIR_Attr<"ConstPtr", "ptr", [TypedAttrInterface]> {
}];
}
+//===----------------------------------------------------------------------===//
+// VisibilityAttr
+//===----------------------------------------------------------------------===//
+
+def VK_Default : I32EnumAttrCase<"Default", 1, "default">;
+def VK_Hidden : I32EnumAttrCase<"Hidden", 2, "hidden">;
+def VK_Protected : I32EnumAttrCase<"Protected", 3, "protected">;
+
+def VisibilityKind : I32EnumAttr<"VisibilityKind", "C/C++ visibility", [
+ VK_Default, VK_Hidden, VK_Protected
+]> {
+ let cppNamespace = "::cir";
+}
----------------
xlauko wrote:
No real need to expose kinds definitions:
```suggestion
def CIR_VisibilityKind : I32EnumAttr<"VisibilityKind", "C/C++ visibility", [
I32EnumAttrCase<"Default", 1, "default">,
I32EnumAttrCase<"Hidden", 2, "hidden">,
I32EnumAttrCase<"Protected", 3, "protected">
]> {
let cppNamespace = "::cir";
}
```
https://github.com/llvm/llvm-project/pull/141973
More information about the cfe-commits
mailing list