xref: /llvm-project/clang/test/InstallAPI/asm.test (revision feed66f3eae5006bb05e6cb34801930fd940daa8)
1// RUN: rm -rf %t
2// RUN: split-file %s %t
3// RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json
4
5// RUN: clang-installapi -target arm64-apple-macos13.1 \
6// RUN: -I%t/usr/include -dynamiclib \
7// RUN: -install_name @rpath/lib/libasm.dylib \
8// RUN: %t/inputs.json -o %t/output.tbd 2>&1 | FileCheck %s --allow-empty
9// RUN: llvm-readtapi -compare %t/output.tbd %t/expected.tbd 2>&1 | FileCheck %s --allow-empty
10
11// CHECK-NOT: error:
12// CHECK-NOT: warning:
13
14//--- usr/include/asm.h
15#ifndef ASM_H
16#define ASM_H
17
18extern int ivar __asm("_OBJC_IVAR_$_SomeClass._ivar1");
19extern int objcClass1 __asm("_OBJC_CLASS_$_SomeClass");
20extern int objcClass2 __asm("_OBJC_METACLASS_$_SomeClass");
21extern int objcClass3 __asm("_OBJC_EHTYPE_$_SomeClass");
22extern int objcClass4 __asm(".objc_class_name_SomeClass");
23
24__attribute__((visibility("hidden")))
25@interface NSString {
26}
27@end
28
29extern int ivarExtra __asm("_OBJC_IVAR_$_NSString._ivar1");
30#endif // ASM_H
31
32//--- inputs.json.in
33{
34  "headers": [ {
35    "path" : "DSTROOT/usr/include/asm.h",
36    "type" : "public"
37  }],
38  "version": "3"
39}
40
41//--- expected.tbd
42{
43  "main_library": {
44    "compatibility_versions": [
45      {
46        "version": "0"
47      }
48    ],
49    "current_versions": [
50      {
51        "version": "0"
52      }
53    ],
54    "exported_symbols": [
55      {
56        "data": {
57          "objc_class": [
58            "SomeClass"
59          ],
60          "objc_eh_type": [
61            "SomeClass"
62          ],
63          "objc_ivar": [
64            "NSString._ivar1",
65            "SomeClass._ivar1"
66          ]
67        }
68      }
69    ],
70    "flags": [
71      {
72        "attributes": [
73          "not_app_extension_safe"
74        ]
75      }
76    ],
77    "install_names": [
78      {
79        "name": "@rpath/lib/libasm.dylib"
80      }
81    ],
82    "target_info": [
83      {
84        "min_deployment": "13.1",
85        "target": "arm64-macos"
86      }
87    ]
88  },
89  "tapi_tbd_version": 5
90}
91