1#ifdef GET_ATTR_NAMES
2#undef GET_ATTR_NAMES
3#ifndef ATTRIBUTE_ENUM
4#define ATTRIBUTE_ENUM(FIRST, SECOND)
5#endif
6
7ATTRIBUTE_ENUM(AllocAlign,allocalign)
8ATTRIBUTE_ENUM(AllocatedPointer,allocptr)
9ATTRIBUTE_ENUM(AlwaysInline,alwaysinline)
10ATTRIBUTE_ENUM(Builtin,builtin)
11ATTRIBUTE_ENUM(Cold,cold)
12ATTRIBUTE_ENUM(Convergent,convergent)
13ATTRIBUTE_ENUM(CoroDestroyOnlyWhenComplete,coro_only_destroy_when_complete)
14ATTRIBUTE_ENUM(CoroElideSafe,coro_elide_safe)
15ATTRIBUTE_ENUM(DeadOnUnwind,dead_on_unwind)
16ATTRIBUTE_ENUM(DisableSanitizerInstrumentation,disable_sanitizer_instrumentation)
17ATTRIBUTE_ENUM(Flatten,flatten)
18ATTRIBUTE_ENUM(FnRetThunkExtern,fn_ret_thunk_extern)
19ATTRIBUTE_ENUM(Hot,hot)
20ATTRIBUTE_ENUM(HybridPatchable,hybrid_patchable)
21ATTRIBUTE_ENUM(ImmArg,immarg)
22ATTRIBUTE_ENUM(InReg,inreg)
23ATTRIBUTE_ENUM(InlineHint,inlinehint)
24ATTRIBUTE_ENUM(JumpTable,jumptable)
25ATTRIBUTE_ENUM(MinSize,minsize)
26ATTRIBUTE_ENUM(MustProgress,mustprogress)
27ATTRIBUTE_ENUM(Naked,naked)
28ATTRIBUTE_ENUM(Nest,nest)
29ATTRIBUTE_ENUM(NoAlias,noalias)
30ATTRIBUTE_ENUM(NoBuiltin,nobuiltin)
31ATTRIBUTE_ENUM(NoCallback,nocallback)
32ATTRIBUTE_ENUM(NoCfCheck,nocf_check)
33ATTRIBUTE_ENUM(NoCreateUndefOrPoison,nocreateundeforpoison)
34ATTRIBUTE_ENUM(NoDivergenceSource,nodivergencesource)
35ATTRIBUTE_ENUM(NoDuplicate,noduplicate)
36ATTRIBUTE_ENUM(NoExt,noext)
37ATTRIBUTE_ENUM(NoFree,nofree)
38ATTRIBUTE_ENUM(NoFreeObj,nofreeobj)
39ATTRIBUTE_ENUM(NoIPA,noipa)
40ATTRIBUTE_ENUM(NoImplicitFloat,noimplicitfloat)
41ATTRIBUTE_ENUM(NoInline,noinline)
42ATTRIBUTE_ENUM(NoMerge,nomerge)
43ATTRIBUTE_ENUM(NoOutline,nooutline)
44ATTRIBUTE_ENUM(NoProfile,noprofile)
45ATTRIBUTE_ENUM(NoRecurse,norecurse)
46ATTRIBUTE_ENUM(NoRedZone,noredzone)
47ATTRIBUTE_ENUM(NoReturn,noreturn)
48ATTRIBUTE_ENUM(NoSanitizeBounds,nosanitize_bounds)
49ATTRIBUTE_ENUM(NoSanitizeCoverage,nosanitize_coverage)
50ATTRIBUTE_ENUM(NoSync,nosync)
51ATTRIBUTE_ENUM(NoUndef,noundef)
52ATTRIBUTE_ENUM(NoUnwind,nounwind)
53ATTRIBUTE_ENUM(NonLazyBind,nonlazybind)
54ATTRIBUTE_ENUM(NonNull,nonnull)
55ATTRIBUTE_ENUM(NullPointerIsValid,null_pointer_is_valid)
56ATTRIBUTE_ENUM(OptForFuzzing,optforfuzzing)
57ATTRIBUTE_ENUM(OptimizeForDebugging,optdebug)
58ATTRIBUTE_ENUM(OptimizeForSize,optsize)
59ATTRIBUTE_ENUM(OptimizeNone,optnone)
60ATTRIBUTE_ENUM(PresplitCoroutine,presplitcoroutine)
61ATTRIBUTE_ENUM(ReadNone,readnone)
62ATTRIBUTE_ENUM(ReadOnly,readonly)
63ATTRIBUTE_ENUM(Returned,returned)
64ATTRIBUTE_ENUM(ReturnsTwice,returns_twice)
65ATTRIBUTE_ENUM(SExt,signext)
66ATTRIBUTE_ENUM(SafeStack,safestack)
67ATTRIBUTE_ENUM(SanitizeAddress,sanitize_address)
68ATTRIBUTE_ENUM(SanitizeAllocToken,sanitize_alloc_token)
69ATTRIBUTE_ENUM(SanitizeHWAddress,sanitize_hwaddress)
70ATTRIBUTE_ENUM(SanitizeMemTag,sanitize_memtag)
71ATTRIBUTE_ENUM(SanitizeMemory,sanitize_memory)
72ATTRIBUTE_ENUM(SanitizeNumericalStability,sanitize_numerical_stability)
73ATTRIBUTE_ENUM(SanitizeRealtime,sanitize_realtime)
74ATTRIBUTE_ENUM(SanitizeRealtimeBlocking,sanitize_realtime_blocking)
75ATTRIBUTE_ENUM(SanitizeThread,sanitize_thread)
76ATTRIBUTE_ENUM(SanitizeType,sanitize_type)
77ATTRIBUTE_ENUM(ShadowCallStack,shadowcallstack)
78ATTRIBUTE_ENUM(SkipProfile,skipprofile)
79ATTRIBUTE_ENUM(Speculatable,speculatable)
80ATTRIBUTE_ENUM(SpeculativeLoadHardening,speculative_load_hardening)
81ATTRIBUTE_ENUM(StackProtect,ssp)
82ATTRIBUTE_ENUM(StackProtectReq,sspreq)
83ATTRIBUTE_ENUM(StackProtectStrong,sspstrong)
84ATTRIBUTE_ENUM(StrictFP,strictfp)
85ATTRIBUTE_ENUM(SwiftAsync,swiftasync)
86ATTRIBUTE_ENUM(SwiftError,swifterror)
87ATTRIBUTE_ENUM(SwiftSelf,swiftself)
88ATTRIBUTE_ENUM(WillReturn,willreturn)
89ATTRIBUTE_ENUM(Writable,writable)
90ATTRIBUTE_ENUM(WriteOnly,writeonly)
91ATTRIBUTE_ENUM(ZExt,zeroext)
92ATTRIBUTE_ENUM(ByRef,byref)
93ATTRIBUTE_ENUM(ByVal,byval)
94ATTRIBUTE_ENUM(ElementType,elementtype)
95ATTRIBUTE_ENUM(InAlloca,inalloca)
96ATTRIBUTE_ENUM(Preallocated,preallocated)
97ATTRIBUTE_ENUM(StructRet,sret)
98ATTRIBUTE_ENUM(Alignment,align)
99ATTRIBUTE_ENUM(AllocKind,allockind)
100ATTRIBUTE_ENUM(AllocSize,allocsize)
101ATTRIBUTE_ENUM(Captures,captures)
102ATTRIBUTE_ENUM(DeadOnReturn,dead_on_return)
103ATTRIBUTE_ENUM(DenormalFPEnv,denormal_fpenv)
104ATTRIBUTE_ENUM(Dereferenceable,dereferenceable)
105ATTRIBUTE_ENUM(DereferenceableOrNull,dereferenceable_or_null)
106ATTRIBUTE_ENUM(Memory,memory)
107ATTRIBUTE_ENUM(NoFPClass,nofpclass)
108ATTRIBUTE_ENUM(StackAlignment,alignstack)
109ATTRIBUTE_ENUM(UWTable,uwtable)
110ATTRIBUTE_ENUM(VScaleRange,vscale_range)
111ATTRIBUTE_ENUM(Range,range)
112ATTRIBUTE_ENUM(Initializes,initializes)
113#undef ATTRIBUTE_ENUM
114
115#ifndef ATTRIBUTE_STRBOOL
116#define ATTRIBUTE_STRBOOL(FIRST, SECOND)
117#endif
118
119ATTRIBUTE_STRBOOL(AllowDirectAccessInHotPatchFunction,allow_direct_access_in_hot_patch_function)
120ATTRIBUTE_STRBOOL(LessPreciseFPMAD,less-precise-fpmad)
121ATTRIBUTE_STRBOOL(LoaderReplaceable,loader-replaceable)
122ATTRIBUTE_STRBOOL(MarkedForWindowsSecureHotPatching,marked_for_windows_hot_patching)
123ATTRIBUTE_STRBOOL(NoInlineLineTables,no-inline-line-tables)
124ATTRIBUTE_STRBOOL(NoJumpTables,no-jump-tables)
125ATTRIBUTE_STRBOOL(NoSignedZerosFPMath,no-signed-zeros-fp-math)
126ATTRIBUTE_STRBOOL(ProfileSampleAccurate,profile-sample-accurate)
127ATTRIBUTE_STRBOOL(UseSampleProfile,use-sample-profile)
128#undef ATTRIBUTE_STRBOOL
129
130#endif
131
132#ifdef GET_ATTR_ENUM
133#undef GET_ATTR_ENUM
134FirstEnumAttr = 1,
135AllocAlign = 1,
136AllocatedPointer = 2,
137AlwaysInline = 3,
138Builtin = 4,
139Cold = 5,
140Convergent = 6,
141CoroDestroyOnlyWhenComplete = 7,
142CoroElideSafe = 8,
143DeadOnUnwind = 9,
144DisableSanitizerInstrumentation = 10,
145Flatten = 11,
146FnRetThunkExtern = 12,
147Hot = 13,
148HybridPatchable = 14,
149ImmArg = 15,
150InReg = 16,
151InlineHint = 17,
152JumpTable = 18,
153MinSize = 19,
154MustProgress = 20,
155Naked = 21,
156Nest = 22,
157NoAlias = 23,
158NoBuiltin = 24,
159NoCallback = 25,
160NoCfCheck = 26,
161NoCreateUndefOrPoison = 27,
162NoDivergenceSource = 28,
163NoDuplicate = 29,
164NoExt = 30,
165NoFree = 31,
166NoFreeObj = 32,
167NoIPA = 33,
168NoImplicitFloat = 34,
169NoInline = 35,
170NoMerge = 36,
171NoOutline = 37,
172NoProfile = 38,
173NoRecurse = 39,
174NoRedZone = 40,
175NoReturn = 41,
176NoSanitizeBounds = 42,
177NoSanitizeCoverage = 43,
178NoSync = 44,
179NoUndef = 45,
180NoUnwind = 46,
181NonLazyBind = 47,
182NonNull = 48,
183NullPointerIsValid = 49,
184OptForFuzzing = 50,
185OptimizeForDebugging = 51,
186OptimizeForSize = 52,
187OptimizeNone = 53,
188PresplitCoroutine = 54,
189ReadNone = 55,
190ReadOnly = 56,
191Returned = 57,
192ReturnsTwice = 58,
193SExt = 59,
194SafeStack = 60,
195SanitizeAddress = 61,
196SanitizeAllocToken = 62,
197SanitizeHWAddress = 63,
198SanitizeMemTag = 64,
199SanitizeMemory = 65,
200SanitizeNumericalStability = 66,
201SanitizeRealtime = 67,
202SanitizeRealtimeBlocking = 68,
203SanitizeThread = 69,
204SanitizeType = 70,
205ShadowCallStack = 71,
206SkipProfile = 72,
207Speculatable = 73,
208SpeculativeLoadHardening = 74,
209StackProtect = 75,
210StackProtectReq = 76,
211StackProtectStrong = 77,
212StrictFP = 78,
213SwiftAsync = 79,
214SwiftError = 80,
215SwiftSelf = 81,
216WillReturn = 82,
217Writable = 83,
218WriteOnly = 84,
219ZExt = 85,
220LastEnumAttr = 85,
221FirstTypeAttr = 86,
222ByRef = 86,
223ByVal = 87,
224ElementType = 88,
225InAlloca = 89,
226Preallocated = 90,
227StructRet = 91,
228LastTypeAttr = 91,
229FirstIntAttr = 92,
230Alignment = 92,
231AllocKind = 93,
232AllocSize = 94,
233Captures = 95,
234DeadOnReturn = 96,
235DenormalFPEnv = 97,
236Dereferenceable = 98,
237DereferenceableOrNull = 99,
238Memory = 100,
239NoFPClass = 101,
240StackAlignment = 102,
241UWTable = 103,
242VScaleRange = 104,
243LastIntAttr = 104,
244FirstConstantRangeAttr = 105,
245Range = 105,
246LastConstantRangeAttr = 105,
247FirstConstantRangeListAttr = 106,
248Initializes = 106,
249LastConstantRangeListAttr = 106,
250#endif
251
252#ifdef GET_ATTR_COMPAT_FUNC
253#undef GET_ATTR_COMPAT_FUNC
254static inline bool hasCompatibleFnAttrs(const Function &Caller,
255 const Function &Callee) {
256 bool Ret = true;
257
258 Ret &= isEqual<SanitizeAddressAttr>(Caller, Callee);
259 Ret &= isEqual<SanitizeThreadAttr>(Caller, Callee);
260 Ret &= isEqual<SanitizeTypeAttr>(Caller, Callee);
261 Ret &= isEqual<SanitizeMemoryAttr>(Caller, Callee);
262 Ret &= isEqual<SanitizeHWAddressAttr>(Caller, Callee);
263 Ret &= isEqual<SanitizeMemTagAttr>(Caller, Callee);
264 Ret &= isEqual<SanitizeNumericalStabilityAttr>(Caller, Callee);
265 Ret &= isEqual<SanitizeRealtimeAttr>(Caller, Callee);
266 Ret &= isEqual<SanitizeRealtimeBlockingAttr>(Caller, Callee);
267 Ret &= isEqual<SafeStackAttr>(Caller, Callee);
268 Ret &= isEqual<ShadowCallStackAttr>(Caller, Callee);
269 Ret &= isEqual<UseSampleProfileAttr>(Caller, Callee);
270 Ret &= isEqual<NoProfileAttr>(Caller, Callee);
271 Ret &= checkDenormMode(Caller, Callee);
272 Ret &= checkStrictFP(Caller, Callee);
273 Ret &= isEqual(Caller, Callee, "sign-return-address");
274 Ret &= isEqual(Caller, Callee, "sign-return-address-key");
275 Ret &= isEqual(Caller, Callee, "sign-return-address-harden");
276 Ret &= isEqual(Caller, Callee, "branch-protection-pauth-lr");
277
278 return Ret;
279}
280
281static inline void mergeFnAttrs(Function &Caller,
282 const Function &Callee) {
283 setAND<LessPreciseFPMADAttr>(Caller, Callee);
284 setAND<NoSignedZerosFPMathAttr>(Caller, Callee);
285 setOR<NoImplicitFloatAttr>(Caller, Callee);
286 setOR<NoJumpTablesAttr>(Caller, Callee);
287 setOR<ProfileSampleAccurateAttr>(Caller, Callee);
288 setOR<SpeculativeLoadHardeningAttr>(Caller, Callee);
289 adjustCallerSSPLevel(Caller, Callee);
290 adjustCallerStackProbes(Caller, Callee);
291 adjustCallerStackProbeSize(Caller, Callee);
292 adjustMinLegalVectorWidth(Caller, Callee);
293 adjustNullPointerValidAttr(Caller, Callee);
294 setAND<MustProgressAttr>(Caller, Callee);
295}
296
297#endif
298#ifdef GET_ATTR_PROP_TABLE
299#undef GET_ATTR_PROP_TABLE
300static const uint8_t AttrPropTable[] = {
3010 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd,
3020 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd,
3030 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3040 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3050 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3060 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3070 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3080 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3090 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd,
3100 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3110 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3120 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3130 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3140 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3150 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve,
3160 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3170 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3180 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3190 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3200 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3210 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3220 | AttributeProperty::ParamAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3230 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectAnd,
3240 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3250 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3260 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3270 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3280 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3290 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3300 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3310 | AttributeProperty::FnAttr | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd,
3320 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectAnd,
3330 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3340 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3350 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3360 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3370 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3380 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3390 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3400 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3410 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3420 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3430 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3440 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3450 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectAnd,
3460 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3470 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3480 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectAnd,
3490 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3500 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3510 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3520 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3530 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3540 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3550 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd,
3560 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd,
3570 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd,
3580 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3590 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3600 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3610 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3620 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3630 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3640 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3650 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3660 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3670 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3680 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3690 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3700 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3710 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3720 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3730 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3740 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3750 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3760 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3770 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3780 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3790 | AttributeProperty::ParamAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3800 | AttributeProperty::ParamAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3810 | AttributeProperty::ParamAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3820 | AttributeProperty::FnAttr | AttributeProperty::IntersectAnd,
3830 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd,
3840 | AttributeProperty::ParamAttr | AttributeProperty::IntersectAnd,
3850 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3860 | AttributeProperty::ParamAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3870 | AttributeProperty::ParamAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3880 | AttributeProperty::RetAttr | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve,
3890 | AttributeProperty::ParamAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3900 | AttributeProperty::FnAttr | AttributeProperty::ParamAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3910 | AttributeProperty::ParamAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
3920 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectCustom,
3930 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3940 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3950 | AttributeProperty::ParamAttr | AttributeProperty::IntersectCustom,
3960 | AttributeProperty::ParamAttr | AttributeProperty::IntersectMin,
3970 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
3980 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectMin,
3990 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectMin,
4000 | AttributeProperty::FnAttr | AttributeProperty::IntersectCustom,
4010 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectCustom,
4020 | AttributeProperty::FnAttr | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::ABIAttr | AttributeProperty::IntersectPreserve,
4030 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
4040 | AttributeProperty::FnAttr | AttributeProperty::IntersectPreserve,
4050 | AttributeProperty::ParamAttr | AttributeProperty::RetAttr | AttributeProperty::IntersectCustom,
4060 | AttributeProperty::ParamAttr | AttributeProperty::IntersectPreserve,
407};
408#endif
409