1 | #ifdef GET_ATTR_NAMES |
2 | #undef GET_ATTR_NAMES |
3 | #ifndef ATTRIBUTE_ALL |
4 | #define ATTRIBUTE_ALL(FIRST, SECOND) |
5 | #endif |
6 | |
7 | #ifndef ATTRIBUTE_ENUM |
8 | #define ATTRIBUTE_ENUM(FIRST, SECOND) ATTRIBUTE_ALL(FIRST, SECOND) |
9 | #endif |
10 | |
11 | ATTRIBUTE_ENUM(AllocAlign,allocalign) |
12 | ATTRIBUTE_ENUM(AllocatedPointer,allocptr) |
13 | ATTRIBUTE_ENUM(AlwaysInline,alwaysinline) |
14 | ATTRIBUTE_ENUM(Builtin,builtin) |
15 | ATTRIBUTE_ENUM(Cold,cold) |
16 | ATTRIBUTE_ENUM(Convergent,convergent) |
17 | ATTRIBUTE_ENUM(CoroDestroyOnlyWhenComplete,coro_only_destroy_when_complete) |
18 | ATTRIBUTE_ENUM(CoroElideSafe,coro_elide_safe) |
19 | ATTRIBUTE_ENUM(DeadOnReturn,dead_on_return) |
20 | ATTRIBUTE_ENUM(DeadOnUnwind,dead_on_unwind) |
21 | ATTRIBUTE_ENUM(DisableSanitizerInstrumentation,disable_sanitizer_instrumentation) |
22 | ATTRIBUTE_ENUM(FnRetThunkExtern,fn_ret_thunk_extern) |
23 | ATTRIBUTE_ENUM(Hot,hot) |
24 | ATTRIBUTE_ENUM(HybridPatchable,hybrid_patchable) |
25 | ATTRIBUTE_ENUM(ImmArg,immarg) |
26 | ATTRIBUTE_ENUM(InReg,inreg) |
27 | ATTRIBUTE_ENUM(InlineHint,inlinehint) |
28 | ATTRIBUTE_ENUM(JumpTable,jumptable) |
29 | ATTRIBUTE_ENUM(MinSize,minsize) |
30 | ATTRIBUTE_ENUM(MustProgress,mustprogress) |
31 | ATTRIBUTE_ENUM(Naked,naked) |
32 | ATTRIBUTE_ENUM(Nest,nest) |
33 | ATTRIBUTE_ENUM(NoAlias,noalias) |
34 | ATTRIBUTE_ENUM(NoBuiltin,nobuiltin) |
35 | ATTRIBUTE_ENUM(NoCallback,nocallback) |
36 | ATTRIBUTE_ENUM(NoCfCheck,nocf_check) |
37 | ATTRIBUTE_ENUM(NoDivergenceSource,nodivergencesource) |
38 | ATTRIBUTE_ENUM(NoDuplicate,noduplicate) |
39 | ATTRIBUTE_ENUM(NoExt,noext) |
40 | ATTRIBUTE_ENUM(NoFree,nofree) |
41 | ATTRIBUTE_ENUM(NoImplicitFloat,noimplicitfloat) |
42 | ATTRIBUTE_ENUM(NoInline,noinline) |
43 | ATTRIBUTE_ENUM(NoMerge,nomerge) |
44 | ATTRIBUTE_ENUM(NoProfile,noprofile) |
45 | ATTRIBUTE_ENUM(NoRecurse,norecurse) |
46 | ATTRIBUTE_ENUM(NoRedZone,noredzone) |
47 | ATTRIBUTE_ENUM(NoReturn,noreturn) |
48 | ATTRIBUTE_ENUM(NoSanitizeBounds,nosanitize_bounds) |
49 | ATTRIBUTE_ENUM(NoSanitizeCoverage,nosanitize_coverage) |
50 | ATTRIBUTE_ENUM(NoSync,nosync) |
51 | ATTRIBUTE_ENUM(NoUndef,noundef) |
52 | ATTRIBUTE_ENUM(NoUnwind,nounwind) |
53 | ATTRIBUTE_ENUM(NonLazyBind,nonlazybind) |
54 | ATTRIBUTE_ENUM(NonNull,nonnull) |
55 | ATTRIBUTE_ENUM(NullPointerIsValid,null_pointer_is_valid) |
56 | ATTRIBUTE_ENUM(OptForFuzzing,optforfuzzing) |
57 | ATTRIBUTE_ENUM(OptimizeForDebugging,optdebug) |
58 | ATTRIBUTE_ENUM(OptimizeForSize,optsize) |
59 | ATTRIBUTE_ENUM(OptimizeNone,optnone) |
60 | ATTRIBUTE_ENUM(PresplitCoroutine,presplitcoroutine) |
61 | ATTRIBUTE_ENUM(ReadNone,readnone) |
62 | ATTRIBUTE_ENUM(ReadOnly,readonly) |
63 | ATTRIBUTE_ENUM(Returned,returned) |
64 | ATTRIBUTE_ENUM(ReturnsTwice,returns_twice) |
65 | ATTRIBUTE_ENUM(SExt,signext) |
66 | ATTRIBUTE_ENUM(SafeStack,safestack) |
67 | ATTRIBUTE_ENUM(SanitizeAddress,sanitize_address) |
68 | ATTRIBUTE_ENUM(SanitizeHWAddress,sanitize_hwaddress) |
69 | ATTRIBUTE_ENUM(SanitizeMemTag,sanitize_memtag) |
70 | ATTRIBUTE_ENUM(SanitizeMemory,sanitize_memory) |
71 | ATTRIBUTE_ENUM(SanitizeNumericalStability,sanitize_numerical_stability) |
72 | ATTRIBUTE_ENUM(SanitizeRealtime,sanitize_realtime) |
73 | ATTRIBUTE_ENUM(SanitizeRealtimeBlocking,sanitize_realtime_blocking) |
74 | ATTRIBUTE_ENUM(SanitizeThread,sanitize_thread) |
75 | ATTRIBUTE_ENUM(SanitizeType,sanitize_type) |
76 | ATTRIBUTE_ENUM(ShadowCallStack,shadowcallstack) |
77 | ATTRIBUTE_ENUM(SkipProfile,skipprofile) |
78 | ATTRIBUTE_ENUM(Speculatable,speculatable) |
79 | ATTRIBUTE_ENUM(SpeculativeLoadHardening,speculative_load_hardening) |
80 | ATTRIBUTE_ENUM(StackProtect,ssp) |
81 | ATTRIBUTE_ENUM(StackProtectReq,sspreq) |
82 | ATTRIBUTE_ENUM(StackProtectStrong,sspstrong) |
83 | ATTRIBUTE_ENUM(StrictFP,strictfp) |
84 | ATTRIBUTE_ENUM(SwiftAsync,swiftasync) |
85 | ATTRIBUTE_ENUM(SwiftError,swifterror) |
86 | ATTRIBUTE_ENUM(SwiftSelf,swiftself) |
87 | ATTRIBUTE_ENUM(WillReturn,willreturn) |
88 | ATTRIBUTE_ENUM(Writable,writable) |
89 | ATTRIBUTE_ENUM(WriteOnly,writeonly) |
90 | ATTRIBUTE_ENUM(ZExt,zeroext) |
91 | ATTRIBUTE_ENUM(ByRef,byref) |
92 | ATTRIBUTE_ENUM(ByVal,byval) |
93 | ATTRIBUTE_ENUM(ElementType,elementtype) |
94 | ATTRIBUTE_ENUM(InAlloca,inalloca) |
95 | ATTRIBUTE_ENUM(Preallocated,preallocated) |
96 | ATTRIBUTE_ENUM(StructRet,sret) |
97 | ATTRIBUTE_ENUM(Alignment,align) |
98 | ATTRIBUTE_ENUM(AllocKind,allockind) |
99 | ATTRIBUTE_ENUM(AllocSize,allocsize) |
100 | ATTRIBUTE_ENUM(Captures,captures) |
101 | ATTRIBUTE_ENUM(Dereferenceable,dereferenceable) |
102 | ATTRIBUTE_ENUM(DereferenceableOrNull,dereferenceable_or_null) |
103 | ATTRIBUTE_ENUM(Memory,memory) |
104 | ATTRIBUTE_ENUM(NoFPClass,nofpclass) |
105 | ATTRIBUTE_ENUM(StackAlignment,alignstack) |
106 | ATTRIBUTE_ENUM(UWTable,uwtable) |
107 | ATTRIBUTE_ENUM(VScaleRange,vscale_range) |
108 | ATTRIBUTE_ENUM(Range,range) |
109 | ATTRIBUTE_ENUM(Initializes,initializes) |
110 | #undef ATTRIBUTE_ENUM |
111 | |
112 | #ifndef ATTRIBUTE_STRBOOL |
113 | #define ATTRIBUTE_STRBOOL(FIRST, SECOND) ATTRIBUTE_ALL(FIRST, SECOND) |
114 | #endif |
115 | |
116 | ATTRIBUTE_STRBOOL(AllowDirectAccessInHotPatchFunction,allow_direct_access_in_hot_patch_function) |
117 | ATTRIBUTE_STRBOOL(ApproxFuncFPMath,approx-func-fp-math) |
118 | ATTRIBUTE_STRBOOL(LessPreciseFPMAD,less-precise-fpmad) |
119 | ATTRIBUTE_STRBOOL(LoaderReplaceable,loader-replaceable) |
120 | ATTRIBUTE_STRBOOL(MarkedForWindowsSecureHotPatching,marked_for_windows_hot_patching) |
121 | ATTRIBUTE_STRBOOL(NoInfsFPMath,no-infs-fp-math) |
122 | ATTRIBUTE_STRBOOL(NoInlineLineTables,no-inline-line-tables) |
123 | ATTRIBUTE_STRBOOL(NoJumpTables,no-jump-tables) |
124 | ATTRIBUTE_STRBOOL(NoNansFPMath,no-nans-fp-math) |
125 | ATTRIBUTE_STRBOOL(NoSignedZerosFPMath,no-signed-zeros-fp-math) |
126 | ATTRIBUTE_STRBOOL(ProfileSampleAccurate,profile-sample-accurate) |
127 | ATTRIBUTE_STRBOOL(UnsafeFPMath,unsafe-fp-math) |
128 | ATTRIBUTE_STRBOOL(UseSampleProfile,use-sample-profile) |
129 | #undef ATTRIBUTE_STRBOOL |
130 | |
131 | #ifndef ATTRIBUTE_COMPLEXSTR |
132 | #define ATTRIBUTE_COMPLEXSTR(FIRST, SECOND) ATTRIBUTE_ALL(FIRST, SECOND) |
133 | #endif |
134 | |
135 | ATTRIBUTE_COMPLEXSTR(DenormalFPMath,denormal-fp-math) |
136 | ATTRIBUTE_COMPLEXSTR(DenormalFPMathF32,denormal-fp-math-f32) |
137 | #undef ATTRIBUTE_COMPLEXSTR |
138 | |
139 | #undef ATTRIBUTE_ALL |
140 | #endif |
141 | |
142 | #ifdef GET_ATTR_ENUM |
143 | #undef GET_ATTR_ENUM |
144 | FirstEnumAttr = 1, |
145 | AllocAlign = 1, |
146 | AllocatedPointer = 2, |
147 | AlwaysInline = 3, |
148 | Builtin = 4, |
149 | Cold = 5, |
150 | Convergent = 6, |
151 | CoroDestroyOnlyWhenComplete = 7, |
152 | CoroElideSafe = 8, |
153 | DeadOnReturn = 9, |
154 | DeadOnUnwind = 10, |
155 | DisableSanitizerInstrumentation = 11, |
156 | FnRetThunkExtern = 12, |
157 | Hot = 13, |
158 | HybridPatchable = 14, |
159 | ImmArg = 15, |
160 | InReg = 16, |
161 | InlineHint = 17, |
162 | JumpTable = 18, |
163 | MinSize = 19, |
164 | MustProgress = 20, |
165 | Naked = 21, |
166 | Nest = 22, |
167 | NoAlias = 23, |
168 | NoBuiltin = 24, |
169 | NoCallback = 25, |
170 | NoCfCheck = 26, |
171 | NoDivergenceSource = 27, |
172 | NoDuplicate = 28, |
173 | NoExt = 29, |
174 | NoFree = 30, |
175 | NoImplicitFloat = 31, |
176 | NoInline = 32, |
177 | NoMerge = 33, |
178 | NoProfile = 34, |
179 | NoRecurse = 35, |
180 | NoRedZone = 36, |
181 | NoReturn = 37, |
182 | NoSanitizeBounds = 38, |
183 | NoSanitizeCoverage = 39, |
184 | NoSync = 40, |
185 | NoUndef = 41, |
186 | NoUnwind = 42, |
187 | NonLazyBind = 43, |
188 | NonNull = 44, |
189 | NullPointerIsValid = 45, |
190 | OptForFuzzing = 46, |
191 | OptimizeForDebugging = 47, |
192 | OptimizeForSize = 48, |
193 | OptimizeNone = 49, |
194 | PresplitCoroutine = 50, |
195 | ReadNone = 51, |
196 | ReadOnly = 52, |
197 | Returned = 53, |
198 | ReturnsTwice = 54, |
199 | SExt = 55, |
200 | SafeStack = 56, |
201 | SanitizeAddress = 57, |
202 | SanitizeHWAddress = 58, |
203 | SanitizeMemTag = 59, |
204 | SanitizeMemory = 60, |
205 | SanitizeNumericalStability = 61, |
206 | SanitizeRealtime = 62, |
207 | SanitizeRealtimeBlocking = 63, |
208 | SanitizeThread = 64, |
209 | SanitizeType = 65, |
210 | ShadowCallStack = 66, |
211 | SkipProfile = 67, |
212 | Speculatable = 68, |
213 | SpeculativeLoadHardening = 69, |
214 | StackProtect = 70, |
215 | StackProtectReq = 71, |
216 | StackProtectStrong = 72, |
217 | StrictFP = 73, |
218 | SwiftAsync = 74, |
219 | SwiftError = 75, |
220 | SwiftSelf = 76, |
221 | WillReturn = 77, |
222 | Writable = 78, |
223 | WriteOnly = 79, |
224 | ZExt = 80, |
225 | LastEnumAttr = 80, |
226 | FirstTypeAttr = 81, |
227 | ByRef = 81, |
228 | ByVal = 82, |
229 | ElementType = 83, |
230 | InAlloca = 84, |
231 | Preallocated = 85, |
232 | StructRet = 86, |
233 | LastTypeAttr = 86, |
234 | FirstIntAttr = 87, |
235 | Alignment = 87, |
236 | AllocKind = 88, |
237 | AllocSize = 89, |
238 | Captures = 90, |
239 | Dereferenceable = 91, |
240 | DereferenceableOrNull = 92, |
241 | Memory = 93, |
242 | NoFPClass = 94, |
243 | StackAlignment = 95, |
244 | UWTable = 96, |
245 | VScaleRange = 97, |
246 | LastIntAttr = 97, |
247 | FirstConstantRangeAttr = 98, |
248 | Range = 98, |
249 | LastConstantRangeAttr = 98, |
250 | FirstConstantRangeListAttr = 99, |
251 | Initializes = 99, |
252 | LastConstantRangeListAttr = 99, |
253 | #endif |
254 | |
255 | #ifdef GET_ATTR_COMPAT_FUNC |
256 | #undef GET_ATTR_COMPAT_FUNC |
257 | static inline bool hasCompatibleFnAttrs(const Function &Caller, |
258 | const Function &Callee) { |
259 | bool Ret = true; |
260 | |
261 | Ret &= isEqual<SanitizeAddressAttr>(Caller, Callee); |
262 | Ret &= isEqual<SanitizeThreadAttr>(Caller, Callee); |
263 | Ret &= isEqual<SanitizeTypeAttr>(Caller, Callee); |
264 | Ret &= isEqual<SanitizeMemoryAttr>(Caller, Callee); |
265 | Ret &= isEqual<SanitizeHWAddressAttr>(Caller, Callee); |
266 | Ret &= isEqual<SanitizeMemTagAttr>(Caller, Callee); |
267 | Ret &= isEqual<SanitizeNumericalStabilityAttr>(Caller, Callee); |
268 | Ret &= isEqual<SanitizeRealtimeAttr>(Caller, Callee); |
269 | Ret &= isEqual<SanitizeRealtimeBlockingAttr>(Caller, Callee); |
270 | Ret &= isEqual<SafeStackAttr>(Caller, Callee); |
271 | Ret &= isEqual<ShadowCallStackAttr>(Caller, Callee); |
272 | Ret &= isEqual<UseSampleProfileAttr>(Caller, Callee); |
273 | Ret &= isEqual<NoProfileAttr>(Caller, Callee); |
274 | Ret &= checkDenormMode(Caller, Callee); |
275 | Ret &= checkStrictFP(Caller, Callee); |
276 | Ret &= isEqual(Caller, Callee, "sign-return-address" ); |
277 | Ret &= isEqual(Caller, Callee, "sign-return-address-key" ); |
278 | Ret &= isEqual(Caller, Callee, "branch-protection-pauth-lr" ); |
279 | |
280 | return Ret; |
281 | } |
282 | |
283 | static inline void mergeFnAttrs(Function &Caller, |
284 | const Function &Callee) { |
285 | setAND<LessPreciseFPMADAttr>(Caller, Callee); |
286 | setAND<NoInfsFPMathAttr>(Caller, Callee); |
287 | setAND<NoNansFPMathAttr>(Caller, Callee); |
288 | setAND<ApproxFuncFPMathAttr>(Caller, Callee); |
289 | setAND<NoSignedZerosFPMathAttr>(Caller, Callee); |
290 | setAND<UnsafeFPMathAttr>(Caller, Callee); |
291 | setOR<NoImplicitFloatAttr>(Caller, Callee); |
292 | setOR<NoJumpTablesAttr>(Caller, Callee); |
293 | setOR<ProfileSampleAccurateAttr>(Caller, Callee); |
294 | setOR<SpeculativeLoadHardeningAttr>(Caller, Callee); |
295 | adjustCallerSSPLevel(Caller, Callee); |
296 | adjustCallerStackProbes(Caller, Callee); |
297 | adjustCallerStackProbeSize(Caller, Callee); |
298 | adjustMinLegalVectorWidth(Caller, Callee); |
299 | adjustNullPointerValidAttr(Caller, Callee); |
300 | setAND<MustProgressAttr>(Caller, Callee); |
301 | } |
302 | |
303 | #endif |
304 | #ifdef GET_ATTR_PROP_TABLE |
305 | #undef GET_ATTR_PROP_TABLE |
306 | static const uint8_t AttrPropTable[] = { |
307 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd, |
308 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd, |
309 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
310 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
311 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
312 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
313 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
314 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
315 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd, |
316 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd, |
317 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
318 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
319 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
320 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
321 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
322 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectPreserve, |
323 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
324 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
325 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
326 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
327 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
328 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
329 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectAnd, |
330 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
331 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
332 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
333 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
334 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
335 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectPreserve, |
336 | 0 | AttributeProperty::FnAttr | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd, |
337 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
338 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
339 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
340 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
341 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
342 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
343 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
344 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
345 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
346 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
347 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectAnd, |
348 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
349 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
350 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectAnd, |
351 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
352 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
353 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
354 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
355 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
356 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
357 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd, |
358 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd, |
359 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd, |
360 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
361 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectPreserve, |
362 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
363 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
364 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
365 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
366 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
367 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
368 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
369 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
370 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
371 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
372 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
373 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
374 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
375 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
376 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
377 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
378 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
379 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
380 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
381 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
382 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
383 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd, |
384 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd, |
385 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd, |
386 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectPreserve, |
387 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
388 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
389 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
390 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
391 | 0 | AttributeProperty::FnAttr | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
392 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
393 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectCustom, |
394 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
395 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
396 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectCustom, |
397 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectMin, |
398 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectMin, |
399 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectCustom, |
400 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectCustom, |
401 | 0 | AttributeProperty::FnAttr | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectPreserve, |
402 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
403 | 0 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve, |
404 | 0 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectCustom, |
405 | 0 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve, |
406 | }; |
407 | #endif |
408 | |