1 // RUN: clang-tblgen -gen-clang-test-pragma-attribute-supported-attributes -I%src_include_dir %src_include_dir/clang/Basic/Attr.td -o - | FileCheck %s
3 // The number of supported attributes should never go down!
5 // CHECK: #pragma clang attribute supports the following attributes:
6 // CHECK-NEXT: AMDGPUFlatWorkGroupSize (SubjectMatchRule_function)
7 // CHECK-NEXT: AMDGPUMaxNumWorkGroups (SubjectMatchRule_function)
8 // CHECK-NEXT: AMDGPUNumSGPR (SubjectMatchRule_function)
9 // CHECK-NEXT: AMDGPUNumVGPR (SubjectMatchRule_function)
10 // CHECK-NEXT: AMDGPUWavesPerEU (SubjectMatchRule_function)
11 // CHECK-NEXT: AVRSignal (SubjectMatchRule_function)
12 // CHECK-NEXT: AbiTag (SubjectMatchRule_record_not_is_union, SubjectMatchRule_variable, SubjectMatchRule_function, SubjectMatchRule_namespace)
13 // CHECK-NEXT: AcquireHandle (SubjectMatchRule_function, SubjectMatchRule_type_alias, SubjectMatchRule_variable_is_parameter)
14 // CHECK-NEXT: Alias (SubjectMatchRule_function, SubjectMatchRule_variable_is_global)
15 // CHECK-NEXT: AlignValue (SubjectMatchRule_variable, SubjectMatchRule_type_alias)
16 // CHECK-NEXT: AlwaysDestroy (SubjectMatchRule_variable)
17 // CHECK-NEXT: AlwaysInline (SubjectMatchRule_function)
18 // CHECK-NEXT: Annotate ()
19 // CHECK-NEXT: AnyX86NoCfCheck (SubjectMatchRule_hasType_functionType)
20 // CHECK-NEXT: ArcWeakrefUnavailable (SubjectMatchRule_objc_interface)
21 // CHECK-NEXT: ArmBuiltinAlias (SubjectMatchRule_function)
22 // CHECK-NEXT: AssumeAligned (SubjectMatchRule_objc_method, SubjectMatchRule_function)
23 // CHECK-NEXT: Availability ((SubjectMatchRule_record, SubjectMatchRule_enum, SubjectMatchRule_enum_constant, SubjectMatchRule_field, SubjectMatchRule_function, SubjectMatchRule_namespace, SubjectMatchRule_objc_category, SubjectMatchRule_objc_implementation, SubjectMatchRule_objc_interface, SubjectMatchRule_objc_method, SubjectMatchRule_objc_property, SubjectMatchRule_objc_protocol, SubjectMatchRule_record, SubjectMatchRule_type_alias, SubjectMatchRule_variable))
24 // CHECK-NEXT: AvailableOnlyInDefaultEvalMethod (SubjectMatchRule_type_alias)
25 // CHECK-NEXT: BPFFastCall (SubjectMatchRule_hasType_functionType)
26 // CHECK-NEXT: BPFPreserveAccessIndex (SubjectMatchRule_record)
27 // CHECK-NEXT: BPFPreserveStaticOffset (SubjectMatchRule_record)
28 // CHECK-NEXT: BTFDeclTag (SubjectMatchRule_variable, SubjectMatchRule_function, SubjectMatchRule_record, SubjectMatchRule_field, SubjectMatchRule_type_alias)
29 // CHECK-NEXT: BuiltinAlias (SubjectMatchRule_function)
30 // CHECK-NEXT: CFAuditedTransfer (SubjectMatchRule_function)
31 // CHECK-NEXT: CFConsumed (SubjectMatchRule_variable_is_parameter)
32 // CHECK-NEXT: CFGuard (SubjectMatchRule_function)
33 // CHECK-NEXT: CFICanonicalJumpTable (SubjectMatchRule_function)
34 // CHECK-NEXT: CFUnknownTransfer (SubjectMatchRule_function)
35 // CHECK-NEXT: CPUDispatch (SubjectMatchRule_function)
36 // CHECK-NEXT: CPUSpecific (SubjectMatchRule_function)
37 // CHECK-NEXT: CUDAConstant (SubjectMatchRule_variable)
38 // CHECK-NEXT: CUDADevice (SubjectMatchRule_function, SubjectMatchRule_variable)
39 // CHECK-NEXT: CUDADeviceBuiltinSurfaceType (SubjectMatchRule_record)
40 // CHECK-NEXT: CUDADeviceBuiltinTextureType (SubjectMatchRule_record)
41 // CHECK-NEXT: CUDAGlobal (SubjectMatchRule_function)
42 // CHECK-NEXT: CUDAGridConstant (SubjectMatchRule_variable_is_parameter)
43 // CHECK-NEXT: CUDAHost (SubjectMatchRule_function)
44 // CHECK-NEXT: CUDALaunchBounds (SubjectMatchRule_objc_method, SubjectMatchRule_hasType_functionType)
45 // CHECK-NEXT: CUDAShared (SubjectMatchRule_variable)
46 // CHECK-NEXT: CXX11NoReturn (SubjectMatchRule_function)
47 // CHECK-NEXT: CallableWhen (SubjectMatchRule_function_is_member)
48 // CHECK-NEXT: Callback (SubjectMatchRule_function)
49 // CHECK-NEXT: CalledOnce (SubjectMatchRule_variable_is_parameter)
50 // CHECK-NEXT: Capability (SubjectMatchRule_record, SubjectMatchRule_type_alias)
51 // CHECK-NEXT: CarriesDependency (SubjectMatchRule_variable_is_parameter, SubjectMatchRule_objc_method, SubjectMatchRule_function)
52 // CHECK-NEXT: Cleanup (SubjectMatchRule_variable_is_local)
53 // CHECK-NEXT: ClspvLibclcBuiltin (SubjectMatchRule_function)
54 // CHECK-NEXT: CmseNSEntry (SubjectMatchRule_function)
55 // CHECK-NEXT: Cold (SubjectMatchRule_function)
56 // CHECK-NEXT: Common (SubjectMatchRule_variable)
57 // CHECK-NEXT: ConstInit (SubjectMatchRule_variable_is_global)
58 // CHECK-NEXT: Constructor (SubjectMatchRule_function)
59 // CHECK-NEXT: Consumable (SubjectMatchRule_record)
60 // CHECK-NEXT: ConsumableAutoCast (SubjectMatchRule_record)
61 // CHECK-NEXT: ConsumableSetOnRead (SubjectMatchRule_record)
62 // CHECK-NEXT: Convergent (SubjectMatchRule_function)
63 // CHECK-NEXT: CoroAwaitElidable (SubjectMatchRule_record)
64 // CHECK-NEXT: CoroAwaitElidableArgument (SubjectMatchRule_variable_is_parameter)
65 // CHECK-NEXT: CoroDisableLifetimeBound (SubjectMatchRule_function)
66 // CHECK-NEXT: CoroLifetimeBound (SubjectMatchRule_record)
67 // CHECK-NEXT: CoroOnlyDestroyWhenComplete (SubjectMatchRule_record)
68 // CHECK-NEXT: CoroReturnType (SubjectMatchRule_record)
69 // CHECK-NEXT: CoroWrapper (SubjectMatchRule_function)
70 // CHECK-NEXT: DLLExport (SubjectMatchRule_function, SubjectMatchRule_variable, SubjectMatchRule_record, SubjectMatchRule_objc_interface)
71 // CHECK-NEXT: DLLImport (SubjectMatchRule_function, SubjectMatchRule_variable, SubjectMatchRule_record, SubjectMatchRule_objc_interface)
72 // CHECK-NEXT: Destructor (SubjectMatchRule_function)
73 // CHECK-NEXT: DiagnoseAsBuiltin (SubjectMatchRule_function)
74 // CHECK-NEXT: DisableSanitizerInstrumentation (SubjectMatchRule_function, SubjectMatchRule_objc_method, SubjectMatchRule_variable_is_global)
75 // CHECK-NEXT: DisableTailCalls (SubjectMatchRule_function, SubjectMatchRule_objc_method)
76 // CHECK-NEXT: EnableIf (SubjectMatchRule_function)
77 // CHECK-NEXT: EnforceTCB (SubjectMatchRule_function, SubjectMatchRule_objc_method)
78 // CHECK-NEXT: EnforceTCBLeaf (SubjectMatchRule_function, SubjectMatchRule_objc_method)
79 // CHECK-NEXT: EnumExtensibility (SubjectMatchRule_enum)
80 // CHECK-NEXT: Error (SubjectMatchRule_function)
81 // CHECK-NEXT: ExcludeFromExplicitInstantiation (SubjectMatchRule_variable, SubjectMatchRule_function, SubjectMatchRule_record)
82 // CHECK-NEXT: ExternalSourceSymbol ((SubjectMatchRule_record, SubjectMatchRule_enum, SubjectMatchRule_enum_constant, SubjectMatchRule_field, SubjectMatchRule_function, SubjectMatchRule_namespace, SubjectMatchRule_objc_category, SubjectMatchRule_objc_implementation, SubjectMatchRule_objc_interface, SubjectMatchRule_objc_method, SubjectMatchRule_objc_property, SubjectMatchRule_objc_protocol, SubjectMatchRule_record, SubjectMatchRule_type_alias, SubjectMatchRule_variable))
83 // CHECK-NEXT: FlagEnum (SubjectMatchRule_enum)
84 // CHECK-NEXT: Flatten (SubjectMatchRule_function)
85 // CHECK-NEXT: FunctionReturnThunks (SubjectMatchRule_function)
86 // CHECK-NEXT: GNUInline (SubjectMatchRule_function)
87 // CHECK-NEXT: HIPManaged (SubjectMatchRule_variable)
88 // CHECK-NEXT: Hot (SubjectMatchRule_function)
89 // CHECK-NEXT: HybridPatchable (SubjectMatchRule_function)
90 // CHECK-NEXT: IBAction (SubjectMatchRule_objc_method_is_instance)
91 // CHECK-NEXT: IFunc (SubjectMatchRule_function)
92 // CHECK-NEXT: InitPriority (SubjectMatchRule_variable)
93 // CHECK-NEXT: InternalLinkage (SubjectMatchRule_variable, SubjectMatchRule_function, SubjectMatchRule_record)
94 // CHECK-NEXT: LTOVisibilityPublic (SubjectMatchRule_record)
95 // CHECK-NEXT: Leaf (SubjectMatchRule_function)
96 // CHECK-NEXT: LoaderUninitialized (SubjectMatchRule_variable_is_global)
97 // CHECK-NEXT: Lockable (SubjectMatchRule_record)
98 // CHECK-NEXT: MIGServerRoutine (SubjectMatchRule_function, SubjectMatchRule_objc_method, SubjectMatchRule_block)
99 // CHECK-NEXT: MSConstexpr (SubjectMatchRule_function)
100 // CHECK-NEXT: MSStruct (SubjectMatchRule_record)
101 // CHECK-NEXT: MaybeUndef (SubjectMatchRule_variable_is_parameter)
102 // CHECK-NEXT: MicroMips (SubjectMatchRule_function)
103 // CHECK-NEXT: MinSize (SubjectMatchRule_function, SubjectMatchRule_objc_method)
104 // CHECK-NEXT: MinVectorWidth (SubjectMatchRule_function)
105 // CHECK-NEXT: Mips16 (SubjectMatchRule_function)
106 // CHECK-NEXT: MipsLongCall (SubjectMatchRule_function)
107 // CHECK-NEXT: MipsShortCall (SubjectMatchRule_function)
108 // CHECK-NEXT: NSConsumed (SubjectMatchRule_variable_is_parameter)
109 // CHECK-NEXT: NSConsumesSelf (SubjectMatchRule_objc_method)
110 // CHECK-NEXT: NSErrorDomain (SubjectMatchRule_enum)
111 // CHECK-NEXT: NVPTXKernel (SubjectMatchRule_function)
112 // CHECK-NEXT: Naked (SubjectMatchRule_function)
113 // CHECK-NEXT: NoBuiltin (SubjectMatchRule_function)
114 // CHECK-NEXT: NoCommon (SubjectMatchRule_variable)
115 // CHECK-NEXT: NoConvergent (SubjectMatchRule_function)
116 // CHECK-NEXT: NoDebug (SubjectMatchRule_type_alias, SubjectMatchRule_hasType_functionType, SubjectMatchRule_objc_method, SubjectMatchRule_variable_not_is_parameter)
117 // CHECK-NEXT: NoDestroy (SubjectMatchRule_variable)
118 // CHECK-NEXT: NoDuplicate (SubjectMatchRule_function)
119 // CHECK-NEXT: NoEscape (SubjectMatchRule_variable_is_parameter)
120 // CHECK-NEXT: NoInline (SubjectMatchRule_function)
121 // CHECK-NEXT: NoInstrumentFunction (SubjectMatchRule_function, SubjectMatchRule_objc_method)
122 // CHECK-NEXT: NoMerge (SubjectMatchRule_function, SubjectMatchRule_variable)
123 // CHECK-NEXT: NoMicroMips (SubjectMatchRule_function)
124 // CHECK-NEXT: NoMips16 (SubjectMatchRule_function)
125 // CHECK-NEXT: NoProfileFunction (SubjectMatchRule_function)
126 // CHECK-NEXT: NoRandomizeLayout (SubjectMatchRule_record)
127 // CHECK-NEXT: NoSanitize (SubjectMatchRule_function, SubjectMatchRule_objc_method, SubjectMatchRule_variable_is_global)
128 // CHECK-NEXT: NoSanitizeSpecific (SubjectMatchRule_function, SubjectMatchRule_variable_is_global)
129 // CHECK-NEXT: NoSpeculativeLoadHardening (SubjectMatchRule_function, SubjectMatchRule_objc_method)
130 // CHECK-NEXT: NoSplitStack (SubjectMatchRule_function)
131 // CHECK-NEXT: NoStackProtector (SubjectMatchRule_function)
132 // CHECK-NEXT: NoThreadSafetyAnalysis (SubjectMatchRule_function)
133 // CHECK-NEXT: NoThrow (SubjectMatchRule_hasType_functionType)
134 // CHECK-NEXT: NoUwtable (SubjectMatchRule_hasType_functionType)
135 // CHECK-NEXT: NotTailCalled (SubjectMatchRule_function)
136 // CHECK-NEXT: OMPAssume (SubjectMatchRule_function, SubjectMatchRule_objc_method)
137 // CHECK-NEXT: OSConsumed (SubjectMatchRule_variable_is_parameter)
138 // CHECK-NEXT: OSReturnsNotRetained (SubjectMatchRule_function, SubjectMatchRule_objc_method, SubjectMatchRule_objc_property, SubjectMatchRule_variable_is_parameter)
139 // CHECK-NEXT: OSReturnsRetained (SubjectMatchRule_function, SubjectMatchRule_objc_method, SubjectMatchRule_objc_property, SubjectMatchRule_variable_is_parameter)
140 // CHECK-NEXT: OSReturnsRetainedOnNonZero (SubjectMatchRule_variable_is_parameter)
141 // CHECK-NEXT: OSReturnsRetainedOnZero (SubjectMatchRule_variable_is_parameter)
142 // CHECK-NEXT: ObjCBoxable (SubjectMatchRule_record)
143 // CHECK-NEXT: ObjCBridge (SubjectMatchRule_record, SubjectMatchRule_type_alias)
144 // CHECK-NEXT: ObjCBridgeMutable (SubjectMatchRule_record)
145 // CHECK-NEXT: ObjCBridgeRelated (SubjectMatchRule_record)
146 // CHECK-NEXT: ObjCClassStub (SubjectMatchRule_objc_interface)
147 // CHECK-NEXT: ObjCDesignatedInitializer (SubjectMatchRule_objc_method)
148 // CHECK-NEXT: ObjCDirect (SubjectMatchRule_objc_method)
149 // CHECK-NEXT: ObjCDirectMembers (SubjectMatchRule_objc_implementation, SubjectMatchRule_objc_interface, SubjectMatchRule_objc_category)
150 // CHECK-NEXT: ObjCException (SubjectMatchRule_objc_interface)
151 // CHECK-NEXT: ObjCExplicitProtocolImpl (SubjectMatchRule_objc_protocol)
152 // CHECK-NEXT: ObjCExternallyRetained (SubjectMatchRule_variable_not_is_parameter, SubjectMatchRule_function, SubjectMatchRule_block, SubjectMatchRule_objc_method)
153 // CHECK-NEXT: ObjCMethodFamily (SubjectMatchRule_objc_method)
154 // CHECK-NEXT: ObjCNonLazyClass (SubjectMatchRule_objc_interface, SubjectMatchRule_objc_implementation)
155 // CHECK-NEXT: ObjCNonRuntimeProtocol (SubjectMatchRule_objc_protocol)
156 // CHECK-NEXT: ObjCPreciseLifetime (SubjectMatchRule_variable)
157 // CHECK-NEXT: ObjCRequiresPropertyDefs (SubjectMatchRule_objc_interface)
158 // CHECK-NEXT: ObjCRequiresSuper (SubjectMatchRule_objc_method)
159 // CHECK-NEXT: ObjCReturnsInnerPointer (SubjectMatchRule_objc_method, SubjectMatchRule_objc_property)
160 // CHECK-NEXT: ObjCRootClass (SubjectMatchRule_objc_interface)
161 // CHECK-NEXT: ObjCRuntimeName (SubjectMatchRule_objc_interface, SubjectMatchRule_objc_protocol)
162 // CHECK-NEXT: ObjCRuntimeVisible (SubjectMatchRule_objc_interface)
163 // CHECK-NEXT: ObjCSubclassingRestricted (SubjectMatchRule_objc_interface)
164 // CHECK-NEXT: OpenCLIntelReqdSubGroupSize (SubjectMatchRule_function)
165 // CHECK-NEXT: OpenCLNoSVM (SubjectMatchRule_variable)
166 // CHECK-NEXT: OptimizeNone (SubjectMatchRule_function, SubjectMatchRule_objc_method)
167 // CHECK-NEXT: Overloadable (SubjectMatchRule_function)
168 // CHECK-NEXT: Owner (SubjectMatchRule_record_not_is_union)
169 // CHECK-NEXT: ParamTypestate (SubjectMatchRule_variable_is_parameter)
170 // CHECK-NEXT: PassObjectSize (SubjectMatchRule_variable_is_parameter)
171 // CHECK-NEXT: PatchableFunctionEntry (SubjectMatchRule_function, SubjectMatchRule_objc_method)
172 // CHECK-NEXT: Pointer (SubjectMatchRule_record_not_is_union)
173 // CHECK-NEXT: PreserveNone (SubjectMatchRule_hasType_functionType)
174 // CHECK-NEXT: RandomizeLayout (SubjectMatchRule_record)
175 // CHECK-NEXT: ReadOnlyPlacement (SubjectMatchRule_record)
176 // CHECK-NEXT: ReleaseHandle (SubjectMatchRule_variable_is_parameter)
177 // CHECK-NEXT: ReqdWorkGroupSize (SubjectMatchRule_function)
178 // CHECK-NEXT: Restrict (SubjectMatchRule_function)
179 // CHECK-NEXT: ReturnTypestate (SubjectMatchRule_function, SubjectMatchRule_variable_is_parameter)
180 // CHECK-NEXT: ReturnsNonNull (SubjectMatchRule_objc_method, SubjectMatchRule_function)
181 // CHECK-NEXT: ReturnsTwice (SubjectMatchRule_function)
182 // CHECK-NEXT: SYCLKernelEntryPoint (SubjectMatchRule_function)
183 // CHECK-NEXT: SYCLSpecialClass (SubjectMatchRule_record)
184 // CHECK-NEXT: ScopedLockable (SubjectMatchRule_record)
185 // CHECK-NEXT: Section (SubjectMatchRule_function, SubjectMatchRule_variable_is_global, SubjectMatchRule_objc_method, SubjectMatchRule_objc_property)
186 // CHECK-NEXT: SetTypestate (SubjectMatchRule_function_is_member)
187 // CHECK-NEXT: SpeculativeLoadHardening (SubjectMatchRule_function, SubjectMatchRule_objc_method)
188 // CHECK-NEXT: StandaloneDebug (SubjectMatchRule_record)
189 // CHECK-NEXT: SwiftAsync (SubjectMatchRule_function, SubjectMatchRule_objc_method)
190 // CHECK-NEXT: SwiftAsyncContext (SubjectMatchRule_variable_is_parameter)
191 // CHECK-NEXT: SwiftAsyncError (SubjectMatchRule_function, SubjectMatchRule_objc_method)
192 // CHECK-NEXT: SwiftAsyncName (SubjectMatchRule_objc_method, SubjectMatchRule_function)
193 // CHECK-NEXT: SwiftAttr ()
194 // CHECK-NEXT: SwiftBridgedTypedef (SubjectMatchRule_type_alias)
195 // CHECK-NEXT: SwiftContext (SubjectMatchRule_variable_is_parameter)
196 // CHECK-NEXT: SwiftError (SubjectMatchRule_function, SubjectMatchRule_objc_method)
197 // CHECK-NEXT: SwiftErrorResult (SubjectMatchRule_variable_is_parameter)
198 // CHECK-NEXT: SwiftIndirectResult (SubjectMatchRule_variable_is_parameter)
199 // CHECK-NEXT: SwiftNewType (SubjectMatchRule_type_alias)
200 // CHECK-NEXT: SwiftObjCMembers (SubjectMatchRule_objc_interface)
201 // CHECK-NEXT: TLSModel (SubjectMatchRule_variable_is_thread_local)
202 // CHECK-NEXT: Target (SubjectMatchRule_function)
203 // CHECK-NEXT: TargetClones (SubjectMatchRule_function)
204 // CHECK-NEXT: TargetVersion (SubjectMatchRule_function)
205 // CHECK-NEXT: TestTypestate (SubjectMatchRule_function_is_member)
206 // CHECK-NEXT: TrivialABI (SubjectMatchRule_record)
207 // CHECK-NEXT: Uninitialized (SubjectMatchRule_variable_is_local)
208 // CHECK-NEXT: UnsafeBufferUsage (SubjectMatchRule_function, SubjectMatchRule_field)
209 // CHECK-NEXT: UseHandle (SubjectMatchRule_variable_is_parameter)
210 // CHECK-NEXT: VTablePointerAuthentication (SubjectMatchRule_record)
211 // CHECK-NEXT: VecReturn (SubjectMatchRule_record)
212 // CHECK-NEXT: VecTypeHint (SubjectMatchRule_function)
213 // CHECK-NEXT: WarnUnused (SubjectMatchRule_record)
214 // CHECK-NEXT: WarnUnusedResult (SubjectMatchRule_objc_method, SubjectMatchRule_enum, SubjectMatchRule_record, SubjectMatchRule_hasType_functionType, SubjectMatchRule_type_alias)
215 // CHECK-NEXT: Weak (SubjectMatchRule_variable, SubjectMatchRule_function, SubjectMatchRule_record)
216 // CHECK-NEXT: WeakRef (SubjectMatchRule_variable, SubjectMatchRule_function)
217 // CHECK-NEXT: WebAssemblyExportName (SubjectMatchRule_function)
218 // CHECK-NEXT: WebAssemblyImportModule (SubjectMatchRule_function)
219 // CHECK-NEXT: WebAssemblyImportName (SubjectMatchRule_function)
220 // CHECK-NEXT: WorkGroupSizeHint (SubjectMatchRule_function)
221 // CHECK-NEXT: XRayInstrument (SubjectMatchRule_function, SubjectMatchRule_objc_method)
222 // CHECK-NEXT: XRayLogArgs (SubjectMatchRule_function, SubjectMatchRule_objc_method)
223 // CHECK-NEXT: ZeroCallUsedRegs (SubjectMatchRule_function)
224 // CHECK-NEXT: End of supported attributes.