[clang] [clang-installapi] Add test for -Xproject -fvisibility=* (PR #162908)

Cyndy Ishida via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 10 12:53:45 PDT 2025


https://github.com/cyndyishida created https://github.com/llvm/llvm-project/pull/162908

None

>From dcd875807bed0c7da7f3e7ccbed317aa39332ecc Mon Sep 17 00:00:00 2001
From: Cyndy Ishida <cyndy_ishida at apple.com>
Date: Fri, 10 Oct 2025 12:51:35 -0700
Subject: [PATCH] [clang-installapi] Add test for -Xproject -fvisibility=*

---
 .../project-header-only-args-visibility.test  | 69 +++++++++++++++++++
 1 file changed, 69 insertions(+)
 create mode 100644 clang/test/InstallAPI/project-header-only-args-visibility.test

diff --git a/clang/test/InstallAPI/project-header-only-args-visibility.test b/clang/test/InstallAPI/project-header-only-args-visibility.test
new file mode 100644
index 0000000000000..0403487ae8642
--- /dev/null
+++ b/clang/test/InstallAPI/project-header-only-args-visibility.test
@@ -0,0 +1,69 @@
+; RUN: rm -rf %t
+; RUN: split-file %s %t
+; RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json
+
+; RUN: clang-installapi \
+; RUN: -target arm64-apple-macos26 -install_name @rpath/libfoo.dylib \
+; RUN: -current_version 1 -compatibility_version 1 \
+; RUN: -Xproject -fvisibility=hidden -I%t/usr/include \
+; RUN: -I%t -dynamiclib  %t/inputs.json \
+; RUN: -o %t/output.tbd 2>&1 | FileCheck %s --allow-empty
+; RUN: llvm-readtapi --compare %t/output.tbd %t/expected.tbd 2>&1 | FileCheck %s --allow-empty
+
+; CHECK-NOT: error
+; CHECK-NOT: warning
+
+//--- usr/include/public.h
+int foo(void);
+
+//--- project.h
+int bar(void);
+
+//--- expected.tbd
+{
+  "main_library": {
+    "exported_symbols": [
+      {
+        "text": {
+          "global": [
+            "_foo"
+          ]
+        }
+      }
+    ],
+    "flags": [
+      {
+        "attributes": [
+          "not_app_extension_safe"
+        ]
+      }
+    ],
+    "install_names": [
+      {
+        "name": "@rpath/libfoo.dylib"
+      }
+    ],
+    "target_info": [
+      {
+        "min_deployment": "26",
+        "target": "arm64-macos"
+      }
+    ]
+  },
+  "tapi_tbd_version": 5
+}
+
+;--- inputs.json.in
+{
+  "headers": [ 
+  {
+    "path" : "DSTROOT/usr/include/public.h",
+    "type" : "public"
+  },
+  {
+    "path" : "DSTROOT/project.h",
+    "type" : "project"
+  }
+  ],
+  "version": "3"
+}



More information about the cfe-commits mailing list