Module ATDGenerated.Clang_ast_t

type access_specifier = [
  1. | `None
  2. | `Public
  3. | `Protected
  4. | `Private
]
type atomic_expr_kind = [
  1. | `AO__c11_atomic_init
  2. | `AO__c11_atomic_load
  3. | `AO__c11_atomic_store
  4. | `AO__c11_atomic_exchange
  5. | `AO__c11_atomic_compare_exchange_strong
  6. | `AO__c11_atomic_compare_exchange_weak
  7. | `AO__c11_atomic_fetch_add
  8. | `AO__c11_atomic_fetch_sub
  9. | `AO__c11_atomic_fetch_and
  10. | `AO__c11_atomic_fetch_or
  11. | `AO__c11_atomic_fetch_xor
  12. | `AO__c11_atomic_fetch_nand
  13. | `AO__c11_atomic_fetch_max
  14. | `AO__c11_atomic_fetch_min
  15. | `AO__atomic_load
  16. | `AO__atomic_load_n
  17. | `AO__atomic_store
  18. | `AO__atomic_store_n
  19. | `AO__atomic_exchange
  20. | `AO__atomic_exchange_n
  21. | `AO__atomic_compare_exchange
  22. | `AO__atomic_compare_exchange_n
  23. | `AO__atomic_fetch_add
  24. | `AO__atomic_fetch_sub
  25. | `AO__atomic_fetch_and
  26. | `AO__atomic_fetch_or
  27. | `AO__atomic_fetch_xor
  28. | `AO__atomic_fetch_nand
  29. | `AO__atomic_add_fetch
  30. | `AO__atomic_sub_fetch
  31. | `AO__atomic_and_fetch
  32. | `AO__atomic_or_fetch
  33. | `AO__atomic_xor_fetch
  34. | `AO__atomic_max_fetch
  35. | `AO__atomic_min_fetch
  36. | `AO__atomic_nand_fetch
  37. | `AO__scoped_atomic_load
  38. | `AO__scoped_atomic_load_n
  39. | `AO__scoped_atomic_store
  40. | `AO__scoped_atomic_store_n
  41. | `AO__scoped_atomic_exchange
  42. | `AO__scoped_atomic_exchange_n
  43. | `AO__scoped_atomic_compare_exchange
  44. | `AO__scoped_atomic_compare_exchange_n
  45. | `AO__scoped_atomic_fetch_add
  46. | `AO__scoped_atomic_fetch_sub
  47. | `AO__scoped_atomic_fetch_and
  48. | `AO__scoped_atomic_fetch_or
  49. | `AO__scoped_atomic_fetch_xor
  50. | `AO__scoped_atomic_fetch_nand
  51. | `AO__scoped_atomic_add_fetch
  52. | `AO__scoped_atomic_sub_fetch
  53. | `AO__scoped_atomic_and_fetch
  54. | `AO__scoped_atomic_or_fetch
  55. | `AO__scoped_atomic_xor_fetch
  56. | `AO__scoped_atomic_max_fetch
  57. | `AO__scoped_atomic_min_fetch
  58. | `AO__scoped_atomic_nand_fetch
  59. | `AO__scoped_atomic_fetch_min
  60. | `AO__scoped_atomic_fetch_max
  61. | `AO__opencl_atomic_init
  62. | `AO__opencl_atomic_load
  63. | `AO__opencl_atomic_store
  64. | `AO__opencl_atomic_exchange
  65. | `AO__opencl_atomic_compare_exchange_strong
  66. | `AO__opencl_atomic_compare_exchange_weak
  67. | `AO__opencl_atomic_fetch_add
  68. | `AO__opencl_atomic_fetch_sub
  69. | `AO__opencl_atomic_fetch_and
  70. | `AO__opencl_atomic_fetch_or
  71. | `AO__opencl_atomic_fetch_xor
  72. | `AO__opencl_atomic_fetch_min
  73. | `AO__opencl_atomic_fetch_max
  74. | `AO__atomic_fetch_min
  75. | `AO__atomic_fetch_max
  76. | `AO__hip_atomic_load
  77. | `AO__hip_atomic_store
  78. | `AO__hip_atomic_compare_exchange_weak
  79. | `AO__hip_atomic_compare_exchange_strong
  80. | `AO__hip_atomic_exchange
  81. | `AO__hip_atomic_fetch_add
  82. | `AO__hip_atomic_fetch_sub
  83. | `AO__hip_atomic_fetch_and
  84. | `AO__hip_atomic_fetch_or
  85. | `AO__hip_atomic_fetch_xor
  86. | `AO__hip_atomic_fetch_min
  87. | `AO__hip_atomic_fetch_max
]
type atomic_expr_info = {
  1. aei_kind : atomic_expr_kind;
}
type attribute_kind =
  1. | AddressSpaceAttrKind
  2. | AnnotateTypeAttrKind
  3. | ArmInAttrKind
  4. | ArmInOutAttrKind
  5. | ArmMveStrictPolymorphismAttrKind
  6. | ArmOutAttrKind
  7. | ArmPreservesAttrKind
  8. | ArmStreamingAttrKind
  9. | ArmStreamingCompatibleAttrKind
  10. | BTFTypeTagAttrKind
  11. | CmseNSCallAttrKind
  12. | HLSLGroupSharedAddressSpaceAttrKind
  13. | HLSLParamModifierAttrKind
  14. | NoDerefAttrKind
  15. | ObjCGCAttrKind
  16. | ObjCInertUnsafeUnretainedAttrKind
  17. | ObjCKindOfAttrKind
  18. | OpenCLConstantAddressSpaceAttrKind
  19. | OpenCLGenericAddressSpaceAttrKind
  20. | OpenCLGlobalAddressSpaceAttrKind
  21. | OpenCLGlobalDeviceAddressSpaceAttrKind
  22. | OpenCLGlobalHostAddressSpaceAttrKind
  23. | OpenCLLocalAddressSpaceAttrKind
  24. | OpenCLPrivateAddressSpaceAttrKind
  25. | Ptr32AttrKind
  26. | Ptr64AttrKind
  27. | SPtrAttrKind
  28. | TypeNonNullAttrKind
  29. | TypeNullUnspecifiedAttrKind
  30. | TypeNullableAttrKind
  31. | TypeNullableResultAttrKind
  32. | UPtrAttrKind
  33. | WebAssemblyFuncrefAttrKind
  34. | CodeAlignAttrKind
  35. | FallThroughAttrKind
  36. | LikelyAttrKind
  37. | MustTailAttrKind
  38. | OpenCLUnrollHintAttrKind
  39. | UnlikelyAttrKind
  40. | AlwaysInlineAttrKind
  41. | NoInlineAttrKind
  42. | NoMergeAttrKind
  43. | SuppressAttrKind
  44. | AArch64SVEPcsAttrKind
  45. | AArch64VectorPcsAttrKind
  46. | AMDGPUKernelCallAttrKind
  47. | AcquireHandleAttrKind
  48. | AnyX86NoCfCheckAttrKind
  49. | CDeclAttrKind
  50. | FastCallAttrKind
  51. | IntelOclBiccAttrKind
  52. | LifetimeBoundAttrKind
  53. | M68kRTDAttrKind
  54. | MSABIAttrKind
  55. | NSReturnsRetainedAttrKind
  56. | ObjCOwnershipAttrKind
  57. | PascalAttrKind
  58. | PcsAttrKind
  59. | PreserveAllAttrKind
  60. | PreserveMostAttrKind
  61. | RegCallAttrKind
  62. | StdCallAttrKind
  63. | SwiftAsyncCallAttrKind
  64. | SwiftCallAttrKind
  65. | SysVABIAttrKind
  66. | ThisCallAttrKind
  67. | VectorCallAttrKind
  68. | SwiftAsyncContextAttrKind
  69. | SwiftContextAttrKind
  70. | SwiftErrorResultAttrKind
  71. | SwiftIndirectResultAttrKind
  72. | AnnotateAttrKind
  73. | CFConsumedAttrKind
  74. | CarriesDependencyAttrKind
  75. | NSConsumedAttrKind
  76. | NonNullAttrKind
  77. | OSConsumedAttrKind
  78. | PassObjectSizeAttrKind
  79. | ReleaseHandleAttrKind
  80. | UseHandleAttrKind
  81. | HLSLSV_DispatchThreadIDAttrKind
  82. | HLSLSV_GroupIndexAttrKind
  83. | AMDGPUFlatWorkGroupSizeAttrKind
  84. | AMDGPUNumSGPRAttrKind
  85. | AMDGPUNumVGPRAttrKind
  86. | AMDGPUWavesPerEUAttrKind
  87. | ARMInterruptAttrKind
  88. | AVRInterruptAttrKind
  89. | AVRSignalAttrKind
  90. | AcquireCapabilityAttrKind
  91. | AcquiredAfterAttrKind
  92. | AcquiredBeforeAttrKind
  93. | AlignMac68kAttrKind
  94. | AlignNaturalAttrKind
  95. | AlignedAttrKind
  96. | AllocAlignAttrKind
  97. | AllocSizeAttrKind
  98. | AlwaysDestroyAttrKind
  99. | AnalyzerNoReturnAttrKind
  100. | AnyX86InterruptAttrKind
  101. | AnyX86NoCallerSavedRegistersAttrKind
  102. | ArcWeakrefUnavailableAttrKind
  103. | ArgumentWithTypeTagAttrKind
  104. | ArmBuiltinAliasAttrKind
  105. | ArmLocallyStreamingAttrKind
  106. | ArmNewAttrKind
  107. | ArtificialAttrKind
  108. | AsmLabelAttrKind
  109. | AssertCapabilityAttrKind
  110. | AssertExclusiveLockAttrKind
  111. | AssertSharedLockAttrKind
  112. | AssumeAlignedAttrKind
  113. | AssumptionAttrKind
  114. | AvailabilityAttrKind
  115. | AvailableOnlyInDefaultEvalMethodAttrKind
  116. | BPFPreserveAccessIndexAttrKind
  117. | BPFPreserveStaticOffsetAttrKind
  118. | BTFDeclTagAttrKind
  119. | BlocksAttrKind
  120. | BuiltinAttrKind
  121. | C11NoReturnAttrKind
  122. | CFAuditedTransferAttrKind
  123. | CFGuardAttrKind
  124. | CFICanonicalJumpTableAttrKind
  125. | CFReturnsNotRetainedAttrKind
  126. | CFReturnsRetainedAttrKind
  127. | CFUnknownTransferAttrKind
  128. | CPUDispatchAttrKind
  129. | CPUSpecificAttrKind
  130. | CUDAConstantAttrKind
  131. | CUDADeviceAttrKind
  132. | CUDADeviceBuiltinSurfaceTypeAttrKind
  133. | CUDADeviceBuiltinTextureTypeAttrKind
  134. | CUDAGlobalAttrKind
  135. | CUDAHostAttrKind
  136. | CUDAInvalidTargetAttrKind
  137. | CUDALaunchBoundsAttrKind
  138. | CUDASharedAttrKind
  139. | CXX11NoReturnAttrKind
  140. | CallableWhenAttrKind
  141. | CallbackAttrKind
  142. | CapabilityAttrKind
  143. | CapturedRecordAttrKind
  144. | CleanupAttrKind
  145. | CmseNSEntryAttrKind
  146. | CodeModelAttrKind
  147. | CodeSegAttrKind
  148. | ColdAttrKind
  149. | CommonAttrKind
  150. | ConstAttrKind
  151. | ConstInitAttrKind
  152. | ConstructorAttrKind
  153. | ConsumableAttrKind
  154. | ConsumableAutoCastAttrKind
  155. | ConsumableSetOnReadAttrKind
  156. | ConvergentAttrKind
  157. | CoroDisableLifetimeBoundAttrKind
  158. | CoroLifetimeBoundAttrKind
  159. | CoroOnlyDestroyWhenCompleteAttrKind
  160. | CoroReturnTypeAttrKind
  161. | CoroWrapperAttrKind
  162. | CountedByAttrKind
  163. | DLLExportAttrKind
  164. | DLLExportStaticLocalAttrKind
  165. | DLLImportAttrKind
  166. | DLLImportStaticLocalAttrKind
  167. | DeprecatedAttrKind
  168. | DestructorAttrKind
  169. | DiagnoseAsBuiltinAttrKind
  170. | DiagnoseIfAttrKind
  171. | DisableSanitizerInstrumentationAttrKind
  172. | DisableTailCallsAttrKind
  173. | EmptyBasesAttrKind
  174. | EnableIfAttrKind
  175. | EnforceTCBAttrKind
  176. | EnforceTCBLeafAttrKind
  177. | EnumExtensibilityAttrKind
  178. | ErrorAttrKind
  179. | ExcludeFromExplicitInstantiationAttrKind
  180. | ExclusiveTrylockFunctionAttrKind
  181. | ExternalSourceSymbolAttrKind
  182. | FinalAttrKind
  183. | FlagEnumAttrKind
  184. | FlattenAttrKind
  185. | FormatAttrKind
  186. | FormatArgAttrKind
  187. | FunctionReturnThunksAttrKind
  188. | GNUInlineAttrKind
  189. | GuardedByAttrKind
  190. | GuardedVarAttrKind
  191. | HIPManagedAttrKind
  192. | HLSLNumThreadsAttrKind
  193. | HLSLResourceAttrKind
  194. | HLSLResourceBindingAttrKind
  195. | HLSLShaderAttrKind
  196. | HotAttrKind
  197. | IBActionAttrKind
  198. | IBOutletAttrKind
  199. | IBOutletCollectionAttrKind
  200. | InitPriorityAttrKind
  201. | InternalLinkageAttrKind
  202. | LTOVisibilityPublicAttrKind
  203. | LayoutVersionAttrKind
  204. | LeafAttrKind
  205. | LockReturnedAttrKind
  206. | LocksExcludedAttrKind
  207. | M68kInterruptAttrKind
  208. | MIGServerRoutineAttrKind
  209. | MSAllocatorAttrKind
  210. | MSConstexprAttrKind
  211. | MSInheritanceAttrKind
  212. | MSNoVTableAttrKind
  213. | MSP430InterruptAttrKind
  214. | MSStructAttrKind
  215. | MSVtorDispAttrKind
  216. | MaxFieldAlignmentAttrKind
  217. | MayAliasAttrKind
  218. | MaybeUndefAttrKind
  219. | MicroMipsAttrKind
  220. | MinSizeAttrKind
  221. | MinVectorWidthAttrKind
  222. | Mips16AttrKind
  223. | MipsInterruptAttrKind
  224. | MipsLongCallAttrKind
  225. | MipsShortCallAttrKind
  226. | NSConsumesSelfAttrKind
  227. | NSErrorDomainAttrKind
  228. | NSReturnsAutoreleasedAttrKind
  229. | NSReturnsNotRetainedAttrKind
  230. | NVPTXKernelAttrKind
  231. | NakedAttrKind
  232. | NoAliasAttrKind
  233. | NoCommonAttrKind
  234. | NoDebugAttrKind
  235. | NoDestroyAttrKind
  236. | NoDuplicateAttrKind
  237. | NoInstrumentFunctionAttrKind
  238. | NoMicroMipsAttrKind
  239. | NoMips16AttrKind
  240. | NoProfileFunctionAttrKind
  241. | NoRandomizeLayoutAttrKind
  242. | NoReturnAttrKind
  243. | NoSanitizeAttrKind
  244. | NoSpeculativeLoadHardeningAttrKind
  245. | NoSplitStackAttrKind
  246. | NoStackProtectorAttrKind
  247. | NoThreadSafetyAnalysisAttrKind
  248. | NoThrowAttrKind
  249. | NoUniqueAddressAttrKind
  250. | NoUwtableAttrKind
  251. | NotTailCalledAttrKind
  252. | OMPAllocateDeclAttrKind
  253. | OMPCaptureNoInitAttrKind
  254. | OMPDeclareTargetDeclAttrKind
  255. | OMPDeclareVariantAttrKind
  256. | OMPThreadPrivateDeclAttrKind
  257. | OSConsumesThisAttrKind
  258. | OSReturnsNotRetainedAttrKind
  259. | OSReturnsRetainedAttrKind
  260. | OSReturnsRetainedOnNonZeroAttrKind
  261. | OSReturnsRetainedOnZeroAttrKind
  262. | ObjCBridgeAttrKind
  263. | ObjCBridgeMutableAttrKind
  264. | ObjCBridgeRelatedAttrKind
  265. | ObjCExceptionAttrKind
  266. | ObjCExplicitProtocolImplAttrKind
  267. | ObjCExternallyRetainedAttrKind
  268. | ObjCIndependentClassAttrKind
  269. | ObjCMethodFamilyAttrKind
  270. | ObjCNSObjectAttrKind
  271. | ObjCPreciseLifetimeAttrKind
  272. | ObjCRequiresPropertyDefsAttrKind
  273. | ObjCRequiresSuperAttrKind
  274. | ObjCReturnsInnerPointerAttrKind
  275. | ObjCRootClassAttrKind
  276. | ObjCSubclassingRestrictedAttrKind
  277. | OpenCLIntelReqdSubGroupSizeAttrKind
  278. | OpenCLKernelAttrKind
  279. | OptimizeNoneAttrKind
  280. | OverrideAttrKind
  281. | OwnerAttrKind
  282. | OwnershipAttrKind
  283. | PackedAttrKind
  284. | ParamTypestateAttrKind
  285. | PatchableFunctionEntryAttrKind
  286. | PointerAttrKind
  287. | PragmaClangBSSSectionAttrKind
  288. | PragmaClangDataSectionAttrKind
  289. | PragmaClangRelroSectionAttrKind
  290. | PragmaClangRodataSectionAttrKind
  291. | PragmaClangTextSectionAttrKind
  292. | PreferredNameAttrKind
  293. | PreferredTypeAttrKind
  294. | PtGuardedByAttrKind
  295. | PtGuardedVarAttrKind
  296. | PureAttrKind
  297. | RISCVInterruptAttrKind
  298. | RandomizeLayoutAttrKind
  299. | ReadOnlyPlacementAttrKind
  300. | ReinitializesAttrKind
  301. | ReleaseCapabilityAttrKind
  302. | ReqdWorkGroupSizeAttrKind
  303. | RequiresCapabilityAttrKind
  304. | RestrictAttrKind
  305. | RetainAttrKind
  306. | ReturnTypestateAttrKind
  307. | ReturnsNonNullAttrKind
  308. | ReturnsTwiceAttrKind
  309. | SYCLKernelAttrKind
  310. | SYCLSpecialClassAttrKind
  311. | ScopedLockableAttrKind
  312. | SectionAttrKind
  313. | SelectAnyAttrKind
  314. | SentinelAttrKind
  315. | SetTypestateAttrKind
  316. | SharedTrylockFunctionAttrKind
  317. | SpeculativeLoadHardeningAttrKind
  318. | StandaloneDebugAttrKind
  319. | StrictFPAttrKind
  320. | StrictGuardStackCheckAttrKind
  321. | SwiftAsyncAttrKind
  322. | SwiftAsyncErrorAttrKind
  323. | SwiftAsyncNameAttrKind
  324. | SwiftAttrAttrKind
  325. | SwiftBridgeAttrKind
  326. | SwiftBridgedTypedefAttrKind
  327. | SwiftErrorAttrKind
  328. | SwiftImportAsNonGenericAttrKind
  329. | SwiftImportPropertyAsAccessorsAttrKind
  330. | SwiftNameAttrKind
  331. | SwiftNewTypeAttrKind
  332. | SwiftPrivateAttrKind
  333. | TLSModelAttrKind
  334. | TargetAttrKind
  335. | TargetClonesAttrKind
  336. | TargetVersionAttrKind
  337. | TestTypestateAttrKind
  338. | TransparentUnionAttrKind
  339. | TrivialABIAttrKind
  340. | TryAcquireCapabilityAttrKind
  341. | TypeTagForDatatypeAttrKind
  342. | TypeVisibilityAttrKind
  343. | UnavailableAttrKind
  344. | UninitializedAttrKind
  345. | UnsafeBufferUsageAttrKind
  346. | UnusedAttrKind
  347. | UsedAttrKind
  348. | UsingIfExistsAttrKind
  349. | UuidAttrKind
  350. | VecReturnAttrKind
  351. | VecTypeHintAttrKind
  352. | VisibilityAttrKind
  353. | WarnUnusedAttrKind
  354. | WarnUnusedResultAttrKind
  355. | WeakAttrKind
  356. | WeakImportAttrKind
  357. | WeakRefAttrKind
  358. | WebAssemblyExportNameAttrKind
  359. | WebAssemblyImportModuleAttrKind
  360. | WebAssemblyImportNameAttrKind
  361. | WorkGroupSizeHintAttrKind
  362. | X86ForceAlignArgPointerAttrKind
  363. | XRayInstrumentAttrKind
  364. | XRayLogArgsAttrKind
  365. | ZeroCallUsedRegsAttrKind
  366. | AbiTagAttrKind
  367. | AliasAttrKind
  368. | AlignValueAttrKind
  369. | BuiltinAliasAttrKind
  370. | CalledOnceAttrKind
  371. | IFuncAttrKind
  372. | InitSegAttrKind
  373. | LoaderUninitializedAttrKind
  374. | LoopHintAttrKind
  375. | ModeAttrKind
  376. | NoBuiltinAttrKind
  377. | NoEscapeAttrKind
  378. | OMPCaptureKindAttrKind
  379. | OMPDeclareSimdDeclAttrKind
  380. | OMPReferencedVarAttrKind
  381. | ObjCBoxableAttrKind
  382. | ObjCClassStubAttrKind
  383. | ObjCDesignatedInitializerAttrKind
  384. | ObjCDirectAttrKind
  385. | ObjCDirectMembersAttrKind
  386. | ObjCNonLazyClassAttrKind
  387. | ObjCNonRuntimeProtocolAttrKind
  388. | ObjCRuntimeNameAttrKind
  389. | ObjCRuntimeVisibleAttrKind
  390. | OpenCLAccessAttrKind
  391. | OverloadableAttrKind
  392. | RenderScriptKernelAttrKind
  393. | SwiftObjCMembersAttrKind
  394. | SwiftVersionedAdditionAttrKind
  395. | SwiftVersionedRemovalAttrKind
  396. | ThreadAttrKind
type binary_operator_kind = [
  1. | `PtrMemD
  2. | `PtrMemI
  3. | `Mul
  4. | `Div
  5. | `Rem
  6. | `Add
  7. | `Sub
  8. | `Shl
  9. | `Shr
  10. | `Cmp
  11. | `LT
  12. | `GT
  13. | `LE
  14. | `GE
  15. | `EQ
  16. | `NE
  17. | `And
  18. | `Xor
  19. | `Or
  20. | `LAnd
  21. | `LOr
  22. | `Assign
  23. | `MulAssign
  24. | `DivAssign
  25. | `RemAssign
  26. | `AddAssign
  27. | `SubAssign
  28. | `ShlAssign
  29. | `ShrAssign
  30. | `AndAssign
  31. | `XorAssign
  32. | `OrAssign
  33. | `Comma
]
type binary_operator_info = {
  1. boi_kind : binary_operator_kind;
}
type builtin_type_kind = [
  1. | `Void
  2. | `Bool
  3. | `Char_U
  4. | `UChar
  5. | `WChar_U
  6. | `Char8
  7. | `Char16
  8. | `Char32
  9. | `UShort
  10. | `UInt
  11. | `ULong
  12. | `ULongLong
  13. | `UInt128
  14. | `Char_S
  15. | `SChar
  16. | `WChar_S
  17. | `Short
  18. | `Int
  19. | `Long
  20. | `LongLong
  21. | `Int128
  22. | `ShortAccum
  23. | `Accum
  24. | `LongAccum
  25. | `UShortAccum
  26. | `UAccum
  27. | `ULongAccum
  28. | `ShortFract
  29. | `Fract
  30. | `LongFract
  31. | `UShortFract
  32. | `UFract
  33. | `ULongFract
  34. | `SatShortAccum
  35. | `SatAccum
  36. | `SatLongAccum
  37. | `SatUShortAccum
  38. | `SatUAccum
  39. | `SatULongAccum
  40. | `SatShortFract
  41. | `SatFract
  42. | `SatLongFract
  43. | `SatUShortFract
  44. | `SatUFract
  45. | `SatULongFract
  46. | `Half
  47. | `Float
  48. | `Double
  49. | `LongDouble
  50. | `Float16
  51. | `BFloat16
  52. | `Float128
  53. | `Ibm128
  54. | `NullPtr
  55. | `ObjCId
  56. | `ObjCClass
  57. | `ObjCSel
  58. | `OCLSampler
  59. | `OCLEvent
  60. | `OCLClkEvent
  61. | `OCLQueue
  62. | `OCLReserveID
  63. | `Dependent
  64. | `Overload
  65. | `BoundMember
  66. | `PseudoObject
  67. | `UnknownAny
  68. | `BuiltinFn
  69. | `ARCUnbridgedCast
  70. | `IncompleteMatrixIdx
  71. | `OMPArraySection
  72. | `OMPArrayShaping
  73. | `OMPIterator
  74. | `SveInt8
  75. | `SveInt16
  76. | `SveInt32
  77. | `SveInt64
  78. | `SveUint8
  79. | `SveUint16
  80. | `SveUint32
  81. | `SveUint64
  82. | `SveFloat16
  83. | `SveFloat32
  84. | `SveFloat64
  85. | `SveBFloat16
  86. | `SveInt8x2
  87. | `SveInt16x2
  88. | `SveInt32x2
  89. | `SveInt64x2
  90. | `SveUint8x2
  91. | `SveUint16x2
  92. | `SveUint32x2
  93. | `SveUint64x2
  94. | `SveFloat16x2
  95. | `SveFloat32x2
  96. | `SveFloat64x2
  97. | `SveBFloat16x2
  98. | `SveInt8x3
  99. | `SveInt16x3
  100. | `SveInt32x3
  101. | `SveInt64x3
  102. | `SveUint8x3
  103. | `SveUint16x3
  104. | `SveUint32x3
  105. | `SveUint64x3
  106. | `SveFloat16x3
  107. | `SveFloat32x3
  108. | `SveFloat64x3
  109. | `SveBFloat16x3
  110. | `SveInt8x4
  111. | `SveInt16x4
  112. | `SveInt32x4
  113. | `SveInt64x4
  114. | `SveUint8x4
  115. | `SveUint16x4
  116. | `SveUint32x4
  117. | `SveUint64x4
  118. | `SveFloat16x4
  119. | `SveFloat32x4
  120. | `SveFloat64x4
  121. | `SveBFloat16x4
  122. | `SveBool
  123. | `SveBoolx2
  124. | `SveBoolx4
  125. | `SveCount
]
type cast_kind = [
  1. | `Dependent
  2. | `BitCast
  3. | `LValueBitCast
  4. | `LValueToRValueBitCast
  5. | `LValueToRValue
  6. | `NoOp
  7. | `BaseToDerived
  8. | `DerivedToBase
  9. | `UncheckedDerivedToBase
  10. | `Dynamic
  11. | `ToUnion
  12. | `ArrayToPointerDecay
  13. | `FunctionToPointerDecay
  14. | `NullToPointer
  15. | `NullToMemberPointer
  16. | `BaseToDerivedMemberPointer
  17. | `DerivedToBaseMemberPointer
  18. | `MemberPointerToBoolean
  19. | `ReinterpretMemberPointer
  20. | `UserDefinedConversion
  21. | `ConstructorConversion
  22. | `IntegralToPointer
  23. | `PointerToIntegral
  24. | `PointerToBoolean
  25. | `ToVoid
  26. | `MatrixCast
  27. | `VectorSplat
  28. | `IntegralCast
  29. | `IntegralToBoolean
  30. | `IntegralToFloating
  31. | `FloatingToFixedPoint
  32. | `FixedPointToFloating
  33. | `FixedPointCast
  34. | `FixedPointToIntegral
  35. | `IntegralToFixedPoint
  36. | `FixedPointToBoolean
  37. | `FloatingToIntegral
  38. | `FloatingToBoolean
  39. | `BooleanToSignedIntegral
  40. | `FloatingCast
  41. | `CPointerToObjCPointerCast
  42. | `BlockPointerToObjCPointerCast
  43. | `AnyPointerToBlockPointerCast
  44. | `ObjCObjectLValueCast
  45. | `FloatingRealToComplex
  46. | `FloatingComplexToReal
  47. | `FloatingComplexToBoolean
  48. | `FloatingComplexCast
  49. | `FloatingComplexToIntegralComplex
  50. | `IntegralRealToComplex
  51. | `IntegralComplexToReal
  52. | `IntegralComplexToBoolean
  53. | `IntegralComplexCast
  54. | `IntegralComplexToFloatingComplex
  55. | `ARCProduceObject
  56. | `ARCConsumeObject
  57. | `ARCReclaimReturnedObject
  58. | `ARCExtendBlockObject
  59. | `AtomicToNonAtomic
  60. | `NonAtomicToAtomic
  61. | `CopyAndAutoreleaseBlockObject
  62. | `BuiltinFnToFnPtr
  63. | `ZeroToOCLOpaqueType
  64. | `AddressSpaceConversion
  65. | `IntToOCLSampler
]
type cxx_base_specifier = {
  1. xbs_name : string;
  2. xbs_virtual : bool;
}
type cast_expr_info = {
  1. cei_cast_kind : cast_kind;
  2. cei_base_path : cxx_base_specifier list;
}
type cxx_noexcept_expr_info = {
  1. xnee_value : bool;
}
type decl_context_info = {
  1. dci_has_external_lexical_storage : bool;
  2. dci_has_external_visible_storage : bool;
}
type decl_kind = [
  1. | `TranslationUnit
  2. | `RequiresExprBody
  3. | `LinkageSpec
  4. | `ExternCContext
  5. | `Export
  6. | `Captured
  7. | `Block
  8. | `TopLevelStmt
  9. | `StaticAssert
  10. | `PragmaDetectMismatch
  11. | `PragmaComment
  12. | `ObjCPropertyImpl
  13. | `OMPThreadPrivate
  14. | `OMPRequires
  15. | `OMPAllocate
  16. | `Named
  17. | `ObjCMethod
  18. | `ObjCContainer
  19. | `ObjCProtocol
  20. | `ObjCInterface
  21. | `ObjCImpl
  22. | `ObjCImplementation
  23. | `ObjCCategoryImpl
  24. | `ObjCCategory
  25. | `Namespace
  26. | `HLSLBuffer
  27. | `Value
  28. | `OMPDeclareReduction
  29. | `OMPDeclareMapper
  30. | `UnresolvedUsingValue
  31. | `UnnamedGlobalConstant
  32. | `TemplateParamObject
  33. | `MSGuid
  34. | `IndirectField
  35. | `EnumConstant
  36. | `Declarator
  37. | `Function
  38. | `CXXMethod
  39. | `CXXDestructor
  40. | `CXXConversion
  41. | `CXXConstructor
  42. | `CXXDeductionGuide
  43. | `Var
  44. | `VarTemplateSpecialization
  45. | `VarTemplatePartialSpecialization
  46. | `ParmVar
  47. | `OMPCapturedExpr
  48. | `ImplicitParam
  49. | `Decomposition
  50. | `NonTypeTemplateParm
  51. | `MSProperty
  52. | `Field
  53. | `ObjCIvar
  54. | `ObjCAtDefsField
  55. | `Binding
  56. | `UsingShadow
  57. | `ConstructorUsingShadow
  58. | `UsingPack
  59. | `UsingDirective
  60. | `UnresolvedUsingIfExists
  61. | `Type
  62. | `Tag
  63. | `Record
  64. | `CXXRecord
  65. | `ClassTemplateSpecialization
  66. | `ClassTemplatePartialSpecialization
  67. | `Enum
  68. | `UnresolvedUsingTypename
  69. | `TypedefName
  70. | `Typedef
  71. | `TypeAlias
  72. | `ObjCTypeParam
  73. | `TemplateTypeParm
  74. | `Template
  75. | `TemplateTemplateParm
  76. | `RedeclarableTemplate
  77. | `VarTemplate
  78. | `TypeAliasTemplate
  79. | `FunctionTemplate
  80. | `ClassTemplate
  81. | `Concept
  82. | `BuiltinTemplate
  83. | `ObjCProperty
  84. | `ObjCCompatibleAlias
  85. | `NamespaceAlias
  86. | `Label
  87. | `BaseUsing
  88. | `UsingEnum
  89. | `Using
  90. | `LifetimeExtendedTemporary
  91. | `Import
  92. | `ImplicitConceptSpecialization
  93. | `FriendTemplate
  94. | `Friend
  95. | `FileScopeAsm
  96. | `Empty
  97. | `AccessSpec
]
type declaration_name_kind = [
  1. | `Identifier
  2. | `ObjCZeroArgSelector
  3. | `ObjCOneArgSelector
  4. | `ObjCMultiArgSelector
  5. | `CXXConstructorName
  6. | `CXXDestructorName
  7. | `CXXConversionFunctionName
  8. | `CXXOperatorName
  9. | `CXXLiteralOperatorName
  10. | `CXXUsingDirective
  11. | `CXXDeductionGuideName
]
type declaration_name = {
  1. dn_kind : declaration_name_kind;
  2. dn_name : string;
}
type enum_decl_scope = [
  1. | `Class
  2. | `Struct
]
type enum_decl_info = {
  1. edi_scope : enum_decl_scope option;
  2. edi_is_module_private : bool;
}
type input_kind = [
  1. | `IK_None
  2. | `IK_Asm
  3. | `IK_C
  4. | `IK_CXX
  5. | `IK_ObjC
  6. | `IK_ObjCXX
  7. | `IK_OpenCL
  8. | `IK_CUDA
  9. | `IK_HIP
  10. | `IK_RenderScript
  11. | `IK_LLVM_IR
  12. | `IK_HLSL
]
type integer_literal_info = {
  1. ili_is_signed : bool;
  2. ili_bitwidth : int;
  3. ili_value : string;
}
type integer_type_widths = {
  1. itw_char_type : int;
  2. itw_short_type : int;
  3. itw_int_type : int;
  4. itw_long_type : int;
  5. itw_longlong_type : int;
}
type lambda_capture_kind = [
  1. | `LCK_This
  2. | `LCK_ByCopy
  3. | `LCK_ByRef
  4. | `LCK_VLAType
  5. | `LCK_StarThis
]
type named_decl_info = {
  1. ni_name : string;
  2. ni_qual_name : string list;
}
type obj_c_access_control = [
  1. | `None
  2. | `Private
  3. | `Protected
  4. | `Public
  5. | `Package
]
type obj_c_availability_check_expr_info = {
  1. oacei_version : string option;
}
type obj_c_bridge_cast_kind = [
  1. | `OBC_BridgeRetained
  2. | `OBC_Bridge
  3. | `OBC_BridgeTransfer
]
type obj_c_bridged_cast_expr_info = {
  1. obcei_cast_kind : obj_c_bridge_cast_kind;
}
type obj_c_ivar_decl_info = {
  1. ovdi_is_synthesize : bool;
  2. ovdi_access_control : obj_c_access_control;
}
type obj_c_property_control = [
  1. | `None
  2. | `Required
  3. | `Optional
]
type obj_c_subscript_kind = [
  1. | `ArraySubscript
  2. | `DictionarySubscript
]
type objc_lifetime_attr = [
  1. | `OCL_None
  2. | `OCL_ExplicitNone
  3. | `OCL_Strong
  4. | `OCL_Weak
  5. | `OCL_Autoreleasing
]
type attr_type_info = {
  1. ati_attr_kind : attribute_kind;
  2. ati_lifetime : objc_lifetime_attr;
}
type object_kind = [
  1. | `Ordinary
  2. | `BitField
  3. | `ObjCProperty
  4. | `ObjCSubscript
  5. | `VectorComponent
]
type offset_of_expr_info = {
  1. ooe_literal : integer_literal_info option;
}
type pointer = int
type addr_label_expr_info = {
  1. alei_label : string;
  2. alei_pointer : pointer;
}
type cxx_new_expr_info = {
  1. xnei_is_array : bool;
  2. xnei_array_size_expr : pointer option;
  3. xnei_initializer_expr : pointer option;
  4. xnei_placement_args : pointer list;
}
type cxx_temporary = pointer
type cxx_bind_temporary_expr_info = {
  1. xbtei_cxx_temporary : cxx_temporary;
}
type goto_stmt_info = {
  1. gsi_label : string;
  2. gsi_pointer : pointer;
}
type obj_c_array_literal_expr_info = {
  1. oalei_array_method : pointer option;
}
type obj_c_dictionary_literal_expr_info = {
  1. odlei_dict_method : pointer option;
}
type predefined_expr_type = [
  1. | `Func
  2. | `Function
  3. | `LFunction
  4. | `FuncDName
  5. | `FuncSig
  6. | `LFuncSig
  7. | `PrettyFunction
  8. | `PrettyFunctionNoVirtual
]
type property_attribute = [
  1. | `Readonly
  2. | `Assign
  3. | `Readwrite
  4. | `Retain
  5. | `Copy
  6. | `Nonatomic
  7. | `Atomic
  8. | `Weak
  9. | `Strong
  10. | `Unsafe_unretained
  11. | `ExplicitGetter
  12. | `ExplicitSetter
]
type property_implementation = [
  1. | `Synthesize
  2. | `Dynamic
]
type record_decl_info = {
  1. rdi_definition_ptr : pointer;
  2. rdi_is_module_private : bool;
  3. rdi_is_complete_definition : bool;
  4. rdi_is_dependent_type : bool;
}
type selector = string
type obj_c_method_ref_info = {
  1. mri_getter : selector option;
  2. mri_setter : selector option;
}
type obj_c_subscript_ref_expr_info = {
  1. osrei_kind : obj_c_subscript_kind;
  2. osrei_getter : selector option;
  3. osrei_setter : selector option;
}
type objc_boxed_expr_info = {
  1. obei_boxing_method : selector option;
}
type sentinel_attr_info = {
  1. sai_sentinel : int;
  2. sai_null_pos : int;
}
type source_file = string
type source_location = {
  1. mutable sl_file : source_file option;
  2. mutable sl_line : int option;
  3. mutable sl_column : int option;
  4. sl_is_macro : bool;
  5. mutable sl_macro_file : source_file option;
  6. mutable sl_macro_line : int option;
}
type source_range = source_location * source_location
type attribute_info = {
  1. ai_pointer : pointer;
  2. ai_source_range : source_range;
}
type attr_tuple = attribute_info
type comment_info = {
  1. ci_parent_pointer : pointer;
  2. ci_source_range : source_range;
}
type specifier_kind = [
  1. | `Identifier
  2. | `Namespace
  3. | `NamespaceAlias
  4. | `TypeSpec
  5. | `TypeSpecWithTemplate
  6. | `Global
  7. | `Super
]
type stmt_info = {
  1. si_pointer : pointer;
  2. si_source_range : source_range;
}
type tag_kind = [
  1. | `TTK_Struct
  2. | `TTK_Interface
  3. | `TTK_Union
  4. | `TTK_Class
  5. | `TTK_Enum
]
type qual_type = {
  1. qt_type_ptr : type_ptr;
  2. qt_is_const : bool;
  3. qt_is_restrict : bool;
  4. qt_is_volatile : bool;
}
type array_type_info = {
  1. arti_element_type : qual_type;
  2. arti_stride : int option;
}
type compound_assign_operator_info = {
  1. caoi_lhs_type : qual_type;
  2. caoi_result_type : qual_type;
}
type cxx_delete_expr_info = {
  1. xdei_is_array : bool;
  2. xdei_destroyed_type : qual_type;
}
type decl_ref = {
  1. dr_kind : decl_kind;
  2. dr_decl_pointer : pointer;
  3. dr_name : named_decl_info option;
  4. dr_is_hidden : bool;
  5. dr_qual_type : qual_type option;
}
type cxx_construct_expr_info = {
  1. xcei_decl_ref : decl_ref;
  2. xcei_is_elidable : bool;
  3. xcei_requires_zero_initialization : bool;
  4. xcei_is_copy_constructor : bool;
}
type cxx_ctor_initializer_subject = [
  1. | `Member of decl_ref
  2. | `Delegating of type_ptr
  3. | `BaseClass of type_ptr * bool
]
type decl_ref_expr_info = {
  1. drti_decl_ref : decl_ref option;
  2. drti_found_decl_ref : decl_ref option;
}
type expr_with_cleanups_info = {
  1. ewci_decl_refs : decl_ref list;
}
type function_type_info = {
  1. fti_return_type : qual_type;
}
type materialize_temporary_expr_info = {
  1. mtei_decl_ref : decl_ref option;
}
type member_expr_info = {
  1. mei_is_arrow : bool;
  2. mei_performs_virtual_dispatch : bool;
  3. mei_name : named_decl_info;
  4. mei_decl_ref : decl_ref;
}
type namespace_decl_info = {
  1. ndi_is_inline : bool;
  2. ndi_original_namespace : decl_ref option;
}
type nested_name_specifier_loc = {
  1. nnsl_kind : specifier_kind;
  2. nnsl_ref : decl_ref option;
}
type namespace_alias_decl_info = {
  1. nadi_namespace_loc : source_location;
  2. nadi_target_name_loc : source_location;
  3. nadi_nested_name_specifier_locs : nested_name_specifier_loc list;
  4. nadi_namespace : decl_ref;
}
type obj_c_category_decl_info = {
  1. odi_class_interface : decl_ref option;
  2. odi_implementation : decl_ref option;
  3. odi_protocols : decl_ref list;
}
type obj_c_category_impl_decl_info = {
  1. ocidi_class_interface : decl_ref option;
  2. ocidi_category_decl : decl_ref option;
}
type obj_c_compatible_alias_decl_info = {
  1. ocadi_class_interface : decl_ref option;
}
type obj_c_interface_decl_info = {
  1. otdi_super : decl_ref option;
  2. otdi_implementation : decl_ref option;
  3. otdi_protocols : decl_ref list;
  4. otdi_known_categories : decl_ref list;
}
type obj_c_ivar_ref_expr_info = {
  1. ovrei_decl_ref : decl_ref;
  2. ovrei_pointer : pointer;
  3. ovrei_is_free_ivar : bool;
}
type obj_c_property_decl_info = {
  1. opdi_qual_type : qual_type;
  2. opdi_getter_method : decl_ref option;
  3. opdi_setter_method : decl_ref option;
  4. opdi_ivar_decl : decl_ref option;
  5. opdi_property_control : obj_c_property_control;
  6. opdi_property_attributes : property_attribute list;
}
type obj_c_property_impl_decl_info = {
  1. opidi_implementation : property_implementation;
  2. opidi_property_decl : decl_ref option;
  3. opidi_ivar_decl : decl_ref option;
}
type obj_c_protocol_decl_info = {
  1. opcdi_protocols : decl_ref list;
}
type objc_encode_expr_info = {
  1. oeei_qual_type : qual_type;
  2. oeei_raw : string;
}
type objc_object_type_info = {
  1. ooti_base_type : type_ptr;
  2. ooti_protocol_decls_ptr : pointer list;
  3. ooti_type_args : qual_type list;
}
type overload_expr_info = {
  1. oei_decls : decl_ref list;
  2. oei_name : declaration_name;
}
type params_type_info = {
  1. pti_params_type : qual_type list;
}
type property_ref_kind = [
  1. | `MethodRef of obj_c_method_ref_info
  2. | `PropertyRef of decl_ref
]
type obj_c_property_ref_expr_info = {
  1. oprei_kind : property_ref_kind;
  2. oprei_is_super_receiver : bool;
  3. oprei_is_messaging_getter : bool;
  4. oprei_is_messaging_setter : bool;
}
type receiver_kind = [
  1. | `Instance
  2. | `Class of qual_type
  3. | `SuperInstance
  4. | `SuperClass
]
type obj_c_message_expr_info = {
  1. omei_selector : string;
  2. omei_is_definition_found : bool;
  3. omei_decl_pointer : pointer option;
  4. omei_receiver_kind : receiver_kind;
}
type type_info = {
  1. ti_pointer : pointer;
  2. ti_desugared_type : type_ptr option;
}
type type_trait_info = {
  1. xtti_value : bool;
}
type typedef_decl_info = {
  1. tdi_is_module_private : bool;
}
type typedef_type_info = {
  1. tti_child_type : qual_type;
  2. tti_decl_ptr : pointer;
}
type c_type =
  1. | NoneType of type_info
  2. | AdjustedType of type_info * qual_type
  3. | DecayedType of type_info * qual_type
  4. | ConstantArrayType of type_info * array_type_info * int
  5. | DependentSizedArrayType of type_info * array_type_info
  6. | IncompleteArrayType of type_info * array_type_info
  7. | VariableArrayType of type_info * array_type_info * pointer
  8. | AtomicType of type_info * qual_type
  9. | AttributedType of type_info * attr_type_info
  10. | BTFTagAttributedType of type_info
  11. | BitIntType of type_info
  12. | BlockPointerType of type_info * qual_type
  13. | BuiltinType of type_info * builtin_type_kind
  14. | ComplexType of type_info
  15. | DecltypeType of type_info * qual_type
  16. | AutoType of type_info
  17. | DeducedTemplateSpecializationType of type_info
  18. | DependentAddressSpaceType of type_info
  19. | DependentBitIntType of type_info
  20. | DependentNameType of type_info
  21. | DependentSizedExtVectorType of type_info
  22. | DependentTemplateSpecializationType of type_info
  23. | DependentVectorType of type_info
  24. | ElaboratedType of type_info
  25. | FunctionNoProtoType of type_info * function_type_info
  26. | FunctionProtoType of type_info * function_type_info * params_type_info
  27. | InjectedClassNameType of type_info
  28. | MacroQualifiedType of type_info
  29. | ConstantMatrixType of type_info
  30. | DependentSizedMatrixType of type_info
  31. | MemberPointerType of type_info * qual_type
  32. | ObjCObjectPointerType of type_info * qual_type
  33. | ObjCObjectType of type_info * objc_object_type_info
  34. | ObjCInterfaceType of type_info * pointer
  35. | ObjCTypeParamType of type_info
  36. | PackExpansionType of type_info
  37. | ParenType of type_info * qual_type
  38. | PipeType of type_info
  39. | PointerType of type_info * qual_type
  40. | LValueReferenceType of type_info * qual_type
  41. | RValueReferenceType of type_info * qual_type
  42. | SubstTemplateTypeParmPackType of type_info
  43. | SubstTemplateTypeParmType of type_info
  44. | EnumType of type_info * pointer
  45. | RecordType of type_info * pointer
  46. | TemplateSpecializationType of type_info
  47. | TemplateTypeParmType of type_info
  48. | TypeOfExprType of type_info
  49. | TypeOfType of type_info
  50. | TypedefType of type_info * typedef_type_info
  51. | UnaryTransformType of type_info
  52. | UnresolvedUsingType of type_info
  53. | UsingType of type_info
  54. | VectorType of type_info
  55. | ExtVectorType of type_info
type translation_unit_decl_info = {
  1. tudi_input_path : source_file;
  2. tudi_input_kind : input_kind;
  3. tudi_integer_type_widths : integer_type_widths;
  4. tudi_is_objc_arc_on : bool;
  5. tudi_types : c_type list;
}
type unary_expr_or_type_trait_kind = [
  1. | `AlignOf
  2. | `OpenMPRequiredSimdAlign
  3. | `PreferredAlignOf
  4. | `SizeOf
  5. | `SizeOfWithSize of int
  6. | `VecStep
  7. | `VectorElements
]
type unary_expr_or_type_trait_expr_info = {
  1. uttei_kind : unary_expr_or_type_trait_kind;
  2. uttei_qual_type : qual_type;
}
type unary_operator_kind = [
  1. | `PostInc
  2. | `PostDec
  3. | `PreInc
  4. | `PreDec
  5. | `AddrOf
  6. | `Deref
  7. | `Plus
  8. | `Minus
  9. | `Not
  10. | `LNot
  11. | `Real
  12. | `Imag
  13. | `Extension
  14. | `Coawait
]
type unary_operator_info = {
  1. uoi_kind : unary_operator_kind;
  2. uoi_is_postfix : bool;
}
type unresolved_lookup_expr_info = {
  1. ulei_requires_ADL : bool;
  2. ulei_is_overloaded : bool;
  3. ulei_naming_class : decl_ref option;
}
type using_directive_decl_info = {
  1. uddi_using_location : source_location;
  2. uddi_namespace_key_location : source_location;
  3. uddi_nested_name_specifier_locs : nested_name_specifier_loc list;
  4. uddi_nominated_namespace : decl_ref option;
}
type value_kind = [
  1. | `RValue
  2. | `LValue
  3. | `XValue
]
type expr_info = {
  1. ei_qual_type : qual_type;
  2. ei_value_kind : value_kind;
  3. ei_object_kind : object_kind;
}
type version_tuple = {
  1. vt_major : int;
  2. vt_minor : int option;
  3. vt_subminor : int option;
  4. vt_build : int option;
}
type availability_attr_info = {
  1. aai_platform : string option;
  2. aai_introduced : version_tuple;
}
type visibility_attr =
  1. | DefaultVisibility
  2. | HiddenVisibility
  3. | ProtectedVisibility
type attribute = [
  1. | `AddressSpaceAttr of attribute_info
  2. | `AnnotateTypeAttr of attribute_info
  3. | `ArmInAttr of attribute_info
  4. | `ArmInOutAttr of attribute_info
  5. | `ArmMveStrictPolymorphismAttr of attribute_info
  6. | `ArmOutAttr of attribute_info
  7. | `ArmPreservesAttr of attribute_info
  8. | `ArmStreamingAttr of attribute_info
  9. | `ArmStreamingCompatibleAttr of attribute_info
  10. | `BTFTypeTagAttr of attribute_info
  11. | `CmseNSCallAttr of attribute_info
  12. | `HLSLGroupSharedAddressSpaceAttr of attribute_info
  13. | `HLSLParamModifierAttr of attribute_info
  14. | `NoDerefAttr of attribute_info
  15. | `ObjCGCAttr of attribute_info
  16. | `ObjCInertUnsafeUnretainedAttr of attribute_info
  17. | `ObjCKindOfAttr of attribute_info
  18. | `OpenCLConstantAddressSpaceAttr of attribute_info
  19. | `OpenCLGenericAddressSpaceAttr of attribute_info
  20. | `OpenCLGlobalAddressSpaceAttr of attribute_info
  21. | `OpenCLGlobalDeviceAddressSpaceAttr of attribute_info
  22. | `OpenCLGlobalHostAddressSpaceAttr of attribute_info
  23. | `OpenCLLocalAddressSpaceAttr of attribute_info
  24. | `OpenCLPrivateAddressSpaceAttr of attribute_info
  25. | `Ptr32Attr of attribute_info
  26. | `Ptr64Attr of attribute_info
  27. | `SPtrAttr of attribute_info
  28. | `TypeNonNullAttr of attribute_info
  29. | `TypeNullUnspecifiedAttr of attribute_info
  30. | `TypeNullableAttr of attribute_info
  31. | `TypeNullableResultAttr of attribute_info
  32. | `UPtrAttr of attribute_info
  33. | `WebAssemblyFuncrefAttr of attribute_info
  34. | `CodeAlignAttr of attribute_info
  35. | `FallThroughAttr of attribute_info
  36. | `LikelyAttr of attribute_info
  37. | `MustTailAttr of attribute_info
  38. | `OpenCLUnrollHintAttr of attribute_info
  39. | `UnlikelyAttr of attribute_info
  40. | `AlwaysInlineAttr of attribute_info
  41. | `NoInlineAttr of attribute_info
  42. | `NoMergeAttr of attribute_info
  43. | `SuppressAttr of attribute_info
  44. | `AArch64SVEPcsAttr of attribute_info
  45. | `AArch64VectorPcsAttr of attribute_info
  46. | `AMDGPUKernelCallAttr of attribute_info
  47. | `AcquireHandleAttr of attribute_info
  48. | `AnyX86NoCfCheckAttr of attribute_info
  49. | `CDeclAttr of attribute_info
  50. | `FastCallAttr of attribute_info
  51. | `IntelOclBiccAttr of attribute_info
  52. | `LifetimeBoundAttr of attribute_info
  53. | `M68kRTDAttr of attribute_info
  54. | `MSABIAttr of attribute_info
  55. | `NSReturnsRetainedAttr of attribute_info
  56. | `ObjCOwnershipAttr of attribute_info
  57. | `PascalAttr of attribute_info
  58. | `PcsAttr of attribute_info
  59. | `PreserveAllAttr of attribute_info
  60. | `PreserveMostAttr of attribute_info
  61. | `RegCallAttr of attribute_info
  62. | `StdCallAttr of attribute_info
  63. | `SwiftAsyncCallAttr of attribute_info
  64. | `SwiftCallAttr of attribute_info
  65. | `SysVABIAttr of attribute_info
  66. | `ThisCallAttr of attribute_info
  67. | `VectorCallAttr of attribute_info
  68. | `SwiftAsyncContextAttr of attribute_info
  69. | `SwiftContextAttr of attribute_info
  70. | `SwiftErrorResultAttr of attribute_info
  71. | `SwiftIndirectResultAttr of attribute_info
  72. | `AnnotateAttr of attr_tuple * string
  73. | `CFConsumedAttr of attribute_info
  74. | `CarriesDependencyAttr of attribute_info
  75. | `NSConsumedAttr of attribute_info
  76. | `NonNullAttr of attribute_info
  77. | `OSConsumedAttr of attribute_info
  78. | `PassObjectSizeAttr of attribute_info
  79. | `ReleaseHandleAttr of attribute_info
  80. | `UseHandleAttr of attribute_info
  81. | `HLSLSV_DispatchThreadIDAttr of attribute_info
  82. | `HLSLSV_GroupIndexAttr of attribute_info
  83. | `AMDGPUFlatWorkGroupSizeAttr of attribute_info
  84. | `AMDGPUNumSGPRAttr of attribute_info
  85. | `AMDGPUNumVGPRAttr of attribute_info
  86. | `AMDGPUWavesPerEUAttr of attribute_info
  87. | `ARMInterruptAttr of attribute_info
  88. | `AVRInterruptAttr of attribute_info
  89. | `AVRSignalAttr of attribute_info
  90. | `AcquireCapabilityAttr of attribute_info
  91. | `AcquiredAfterAttr of attribute_info
  92. | `AcquiredBeforeAttr of attribute_info
  93. | `AlignMac68kAttr of attribute_info
  94. | `AlignNaturalAttr of attribute_info
  95. | `AlignedAttr of attribute_info
  96. | `AllocAlignAttr of attribute_info
  97. | `AllocSizeAttr of attribute_info
  98. | `AlwaysDestroyAttr of attribute_info
  99. | `AnalyzerNoReturnAttr of attribute_info
  100. | `AnyX86InterruptAttr of attribute_info
  101. | `AnyX86NoCallerSavedRegistersAttr of attribute_info
  102. | `ArcWeakrefUnavailableAttr of attribute_info
  103. | `ArgumentWithTypeTagAttr of attribute_info
  104. | `ArmBuiltinAliasAttr of attribute_info
  105. | `ArmLocallyStreamingAttr of attribute_info
  106. | `ArmNewAttr of attribute_info
  107. | `ArtificialAttr of attribute_info
  108. | `AsmLabelAttr of attribute_info
  109. | `AssertCapabilityAttr of attribute_info
  110. | `AssertExclusiveLockAttr of attribute_info
  111. | `AssertSharedLockAttr of attribute_info
  112. | `AssumeAlignedAttr of attribute_info
  113. | `AssumptionAttr of attribute_info
  114. | `AvailabilityAttr of attr_tuple * availability_attr_info
  115. | `AvailableOnlyInDefaultEvalMethodAttr of attribute_info
  116. | `BPFPreserveAccessIndexAttr of attribute_info
  117. | `BPFPreserveStaticOffsetAttr of attribute_info
  118. | `BTFDeclTagAttr of attribute_info
  119. | `BlocksAttr of attribute_info
  120. | `BuiltinAttr of attribute_info
  121. | `C11NoReturnAttr of attribute_info
  122. | `CFAuditedTransferAttr of attribute_info
  123. | `CFGuardAttr of attribute_info
  124. | `CFICanonicalJumpTableAttr of attribute_info
  125. | `CFReturnsNotRetainedAttr of attribute_info
  126. | `CFReturnsRetainedAttr of attribute_info
  127. | `CFUnknownTransferAttr of attribute_info
  128. | `CPUDispatchAttr of attribute_info
  129. | `CPUSpecificAttr of attribute_info
  130. | `CUDAConstantAttr of attribute_info
  131. | `CUDADeviceAttr of attribute_info
  132. | `CUDADeviceBuiltinSurfaceTypeAttr of attribute_info
  133. | `CUDADeviceBuiltinTextureTypeAttr of attribute_info
  134. | `CUDAGlobalAttr of attribute_info
  135. | `CUDAHostAttr of attribute_info
  136. | `CUDAInvalidTargetAttr of attribute_info
  137. | `CUDALaunchBoundsAttr of attribute_info
  138. | `CUDASharedAttr of attribute_info
  139. | `CXX11NoReturnAttr of attribute_info
  140. | `CallableWhenAttr of attribute_info
  141. | `CallbackAttr of attribute_info
  142. | `CapabilityAttr of attribute_info
  143. | `CapturedRecordAttr of attribute_info
  144. | `CleanupAttr of attribute_info
  145. | `CmseNSEntryAttr of attribute_info
  146. | `CodeModelAttr of attribute_info
  147. | `CodeSegAttr of attribute_info
  148. | `ColdAttr of attribute_info
  149. | `CommonAttr of attribute_info
  150. | `ConstAttr of attribute_info
  151. | `ConstInitAttr of attribute_info
  152. | `ConstructorAttr of attribute_info
  153. | `ConsumableAttr of attribute_info
  154. | `ConsumableAutoCastAttr of attribute_info
  155. | `ConsumableSetOnReadAttr of attribute_info
  156. | `ConvergentAttr of attribute_info
  157. | `CoroDisableLifetimeBoundAttr of attribute_info
  158. | `CoroLifetimeBoundAttr of attribute_info
  159. | `CoroOnlyDestroyWhenCompleteAttr of attribute_info
  160. | `CoroReturnTypeAttr of attribute_info
  161. | `CoroWrapperAttr of attribute_info
  162. | `CountedByAttr of attribute_info
  163. | `DLLExportAttr of attribute_info
  164. | `DLLExportStaticLocalAttr of attribute_info
  165. | `DLLImportAttr of attribute_info
  166. | `DLLImportStaticLocalAttr of attribute_info
  167. | `DeprecatedAttr of attribute_info
  168. | `DestructorAttr of attribute_info
  169. | `DiagnoseAsBuiltinAttr of attribute_info
  170. | `DiagnoseIfAttr of attribute_info
  171. | `DisableSanitizerInstrumentationAttr of attribute_info
  172. | `DisableTailCallsAttr of attribute_info
  173. | `EmptyBasesAttr of attribute_info
  174. | `EnableIfAttr of attribute_info
  175. | `EnforceTCBAttr of attribute_info
  176. | `EnforceTCBLeafAttr of attribute_info
  177. | `EnumExtensibilityAttr of attribute_info
  178. | `ErrorAttr of attribute_info
  179. | `ExcludeFromExplicitInstantiationAttr of attribute_info
  180. | `ExclusiveTrylockFunctionAttr of attribute_info
  181. | `ExternalSourceSymbolAttr of attribute_info
  182. | `FinalAttr of attribute_info
  183. | `FlagEnumAttr of attribute_info
  184. | `FlattenAttr of attribute_info
  185. | `FormatAttr of attribute_info
  186. | `FormatArgAttr of attribute_info
  187. | `FunctionReturnThunksAttr of attribute_info
  188. | `GNUInlineAttr of attribute_info
  189. | `GuardedByAttr of attribute_info
  190. | `GuardedVarAttr of attribute_info
  191. | `HIPManagedAttr of attribute_info
  192. | `HLSLNumThreadsAttr of attribute_info
  193. | `HLSLResourceAttr of attribute_info
  194. | `HLSLResourceBindingAttr of attribute_info
  195. | `HLSLShaderAttr of attribute_info
  196. | `HotAttr of attribute_info
  197. | `IBActionAttr of attribute_info
  198. | `IBOutletAttr of attribute_info
  199. | `IBOutletCollectionAttr of attribute_info
  200. | `InitPriorityAttr of attribute_info
  201. | `InternalLinkageAttr of attribute_info
  202. | `LTOVisibilityPublicAttr of attribute_info
  203. | `LayoutVersionAttr of attribute_info
  204. | `LeafAttr of attribute_info
  205. | `LockReturnedAttr of attribute_info
  206. | `LocksExcludedAttr of attribute_info
  207. | `M68kInterruptAttr of attribute_info
  208. | `MIGServerRoutineAttr of attribute_info
  209. | `MSAllocatorAttr of attribute_info
  210. | `MSConstexprAttr of attribute_info
  211. | `MSInheritanceAttr of attribute_info
  212. | `MSNoVTableAttr of attribute_info
  213. | `MSP430InterruptAttr of attribute_info
  214. | `MSStructAttr of attribute_info
  215. | `MSVtorDispAttr of attribute_info
  216. | `MaxFieldAlignmentAttr of attribute_info
  217. | `MayAliasAttr of attribute_info
  218. | `MaybeUndefAttr of attribute_info
  219. | `MicroMipsAttr of attribute_info
  220. | `MinSizeAttr of attribute_info
  221. | `MinVectorWidthAttr of attribute_info
  222. | `Mips16Attr of attribute_info
  223. | `MipsInterruptAttr of attribute_info
  224. | `MipsLongCallAttr of attribute_info
  225. | `MipsShortCallAttr of attribute_info
  226. | `NSConsumesSelfAttr of attribute_info
  227. | `NSErrorDomainAttr of attribute_info
  228. | `NSReturnsAutoreleasedAttr of attribute_info
  229. | `NSReturnsNotRetainedAttr of attribute_info
  230. | `NVPTXKernelAttr of attribute_info
  231. | `NakedAttr of attribute_info
  232. | `NoAliasAttr of attribute_info
  233. | `NoCommonAttr of attribute_info
  234. | `NoDebugAttr of attribute_info
  235. | `NoDestroyAttr of attribute_info
  236. | `NoDuplicateAttr of attribute_info
  237. | `NoInstrumentFunctionAttr of attribute_info
  238. | `NoMicroMipsAttr of attribute_info
  239. | `NoMips16Attr of attribute_info
  240. | `NoProfileFunctionAttr of attribute_info
  241. | `NoRandomizeLayoutAttr of attribute_info
  242. | `NoReturnAttr of attribute_info
  243. | `NoSanitizeAttr of attribute_info
  244. | `NoSpeculativeLoadHardeningAttr of attribute_info
  245. | `NoSplitStackAttr of attribute_info
  246. | `NoStackProtectorAttr of attribute_info
  247. | `NoThreadSafetyAnalysisAttr of attribute_info
  248. | `NoThrowAttr of attribute_info
  249. | `NoUniqueAddressAttr of attribute_info
  250. | `NoUwtableAttr of attribute_info
  251. | `NotTailCalledAttr of attribute_info
  252. | `OMPAllocateDeclAttr of attribute_info
  253. | `OMPCaptureNoInitAttr of attribute_info
  254. | `OMPDeclareTargetDeclAttr of attribute_info
  255. | `OMPDeclareVariantAttr of attribute_info
  256. | `OMPThreadPrivateDeclAttr of attribute_info
  257. | `OSConsumesThisAttr of attribute_info
  258. | `OSReturnsNotRetainedAttr of attribute_info
  259. | `OSReturnsRetainedAttr of attribute_info
  260. | `OSReturnsRetainedOnNonZeroAttr of attribute_info
  261. | `OSReturnsRetainedOnZeroAttr of attribute_info
  262. | `ObjCBridgeAttr of attribute_info
  263. | `ObjCBridgeMutableAttr of attribute_info
  264. | `ObjCBridgeRelatedAttr of attribute_info
  265. | `ObjCExceptionAttr of attribute_info
  266. | `ObjCExplicitProtocolImplAttr of attribute_info
  267. | `ObjCExternallyRetainedAttr of attribute_info
  268. | `ObjCIndependentClassAttr of attribute_info
  269. | `ObjCMethodFamilyAttr of attribute_info
  270. | `ObjCNSObjectAttr of attribute_info
  271. | `ObjCPreciseLifetimeAttr of attribute_info
  272. | `ObjCRequiresPropertyDefsAttr of attribute_info
  273. | `ObjCRequiresSuperAttr of attribute_info
  274. | `ObjCReturnsInnerPointerAttr of attribute_info
  275. | `ObjCRootClassAttr of attribute_info
  276. | `ObjCSubclassingRestrictedAttr of attribute_info
  277. | `OpenCLIntelReqdSubGroupSizeAttr of attribute_info
  278. | `OpenCLKernelAttr of attribute_info
  279. | `OptimizeNoneAttr of attribute_info
  280. | `OverrideAttr of attribute_info
  281. | `OwnerAttr of attribute_info
  282. | `OwnershipAttr of attribute_info
  283. | `PackedAttr of attribute_info
  284. | `ParamTypestateAttr of attribute_info
  285. | `PatchableFunctionEntryAttr of attribute_info
  286. | `PointerAttr of attribute_info
  287. | `PragmaClangBSSSectionAttr of attribute_info
  288. | `PragmaClangDataSectionAttr of attribute_info
  289. | `PragmaClangRelroSectionAttr of attribute_info
  290. | `PragmaClangRodataSectionAttr of attribute_info
  291. | `PragmaClangTextSectionAttr of attribute_info
  292. | `PreferredNameAttr of attribute_info
  293. | `PreferredTypeAttr of attribute_info
  294. | `PtGuardedByAttr of attribute_info
  295. | `PtGuardedVarAttr of attribute_info
  296. | `PureAttr of attribute_info
  297. | `RISCVInterruptAttr of attribute_info
  298. | `RandomizeLayoutAttr of attribute_info
  299. | `ReadOnlyPlacementAttr of attribute_info
  300. | `ReinitializesAttr of attribute_info
  301. | `ReleaseCapabilityAttr of attribute_info
  302. | `ReqdWorkGroupSizeAttr of attribute_info
  303. | `RequiresCapabilityAttr of attribute_info
  304. | `RestrictAttr of attribute_info
  305. | `RetainAttr of attribute_info
  306. | `ReturnTypestateAttr of attribute_info
  307. | `ReturnsNonNullAttr of attribute_info
  308. | `ReturnsTwiceAttr of attribute_info
  309. | `SYCLKernelAttr of attribute_info
  310. | `SYCLSpecialClassAttr of attribute_info
  311. | `ScopedLockableAttr of attribute_info
  312. | `SectionAttr of attribute_info
  313. | `SelectAnyAttr of attribute_info
  314. | `SentinelAttr of attr_tuple * sentinel_attr_info
  315. | `SetTypestateAttr of attribute_info
  316. | `SharedTrylockFunctionAttr of attribute_info
  317. | `SpeculativeLoadHardeningAttr of attribute_info
  318. | `StandaloneDebugAttr of attribute_info
  319. | `StrictFPAttr of attribute_info
  320. | `StrictGuardStackCheckAttr of attribute_info
  321. | `SwiftAsyncAttr of attribute_info
  322. | `SwiftAsyncErrorAttr of attribute_info
  323. | `SwiftAsyncNameAttr of attribute_info
  324. | `SwiftAttrAttr of attribute_info
  325. | `SwiftBridgeAttr of attribute_info
  326. | `SwiftBridgedTypedefAttr of attribute_info
  327. | `SwiftErrorAttr of attribute_info
  328. | `SwiftImportAsNonGenericAttr of attribute_info
  329. | `SwiftImportPropertyAsAccessorsAttr of attribute_info
  330. | `SwiftNameAttr of attribute_info
  331. | `SwiftNewTypeAttr of attribute_info
  332. | `SwiftPrivateAttr of attribute_info
  333. | `TLSModelAttr of attribute_info
  334. | `TargetAttr of attribute_info
  335. | `TargetClonesAttr of attribute_info
  336. | `TargetVersionAttr of attribute_info
  337. | `TestTypestateAttr of attribute_info
  338. | `TransparentUnionAttr of attribute_info
  339. | `TrivialABIAttr of attribute_info
  340. | `TryAcquireCapabilityAttr of attribute_info
  341. | `TypeTagForDatatypeAttr of attribute_info
  342. | `TypeVisibilityAttr of attribute_info
  343. | `UnavailableAttr of attribute_info
  344. | `UninitializedAttr of attribute_info
  345. | `UnsafeBufferUsageAttr of attribute_info
  346. | `UnusedAttr of attribute_info
  347. | `UsedAttr of attribute_info
  348. | `UsingIfExistsAttr of attribute_info
  349. | `UuidAttr of attribute_info
  350. | `VecReturnAttr of attribute_info
  351. | `VecTypeHintAttr of attribute_info
  352. | `VisibilityAttr of attr_tuple * visibility_attr
  353. | `WarnUnusedAttr of attribute_info
  354. | `WarnUnusedResultAttr of attribute_info
  355. | `WeakAttr of attribute_info
  356. | `WeakImportAttr of attribute_info
  357. | `WeakRefAttr of attribute_info
  358. | `WebAssemblyExportNameAttr of attribute_info
  359. | `WebAssemblyImportModuleAttr of attribute_info
  360. | `WebAssemblyImportNameAttr of attribute_info
  361. | `WorkGroupSizeHintAttr of attribute_info
  362. | `X86ForceAlignArgPointerAttr of attribute_info
  363. | `XRayInstrumentAttr of attribute_info
  364. | `XRayLogArgsAttr of attribute_info
  365. | `ZeroCallUsedRegsAttr of attribute_info
  366. | `AbiTagAttr of attribute_info
  367. | `AliasAttr of attribute_info
  368. | `AlignValueAttr of attribute_info
  369. | `BuiltinAliasAttr of attribute_info
  370. | `CalledOnceAttr of attribute_info
  371. | `IFuncAttr of attribute_info
  372. | `InitSegAttr of attribute_info
  373. | `LoaderUninitializedAttr of attribute_info
  374. | `LoopHintAttr of attribute_info
  375. | `ModeAttr of attribute_info
  376. | `NoBuiltinAttr of attribute_info
  377. | `NoEscapeAttr of attribute_info
  378. | `OMPCaptureKindAttr of attribute_info
  379. | `OMPDeclareSimdDeclAttr of attribute_info
  380. | `OMPReferencedVarAttr of attribute_info
  381. | `ObjCBoxableAttr of attribute_info
  382. | `ObjCClassStubAttr of attribute_info
  383. | `ObjCDesignatedInitializerAttr of attribute_info
  384. | `ObjCDirectAttr of attribute_info
  385. | `ObjCDirectMembersAttr of attribute_info
  386. | `ObjCNonLazyClassAttr of attribute_info
  387. | `ObjCNonRuntimeProtocolAttr of attribute_info
  388. | `ObjCRuntimeNameAttr of attribute_info
  389. | `ObjCRuntimeVisibleAttr of attribute_info
  390. | `OpenCLAccessAttr of attribute_info
  391. | `OverloadableAttr of attribute_info
  392. | `RenderScriptKernelAttr of attribute_info
  393. | `SwiftObjCMembersAttr of attribute_info
  394. | `SwiftVersionedAdditionAttr of attribute_info
  395. | `SwiftVersionedRemovalAttr of attribute_info
  396. | `ThreadAttr of attribute_info
]
type template_instantiation_arg_info = [
  1. | `Null
  2. | `Type of qual_type
  3. | `Declaration of pointer
  4. | `NullPtr
  5. | `Integral of string
  6. | `Template
  7. | `TemplateExpansion
  8. | `Expression
  9. | `Pack of template_instantiation_arg_info list
]
type comment =
  1. | VerbatimBlockLineComment of comment_info * comment list
  2. | TextComment of comment_info * comment list
  3. | InlineCommandComment of comment_info * comment list
  4. | HTMLStartTagComment of comment_info * comment list
  5. | HTMLEndTagComment of comment_info * comment list
  6. | FullComment of comment_info * comment list
  7. | ParagraphComment of comment_info * comment list
  8. | BlockCommandComment of comment_info * comment list
  9. | VerbatimLineComment of comment_info * comment list
  10. | VerbatimBlockComment of comment_info * comment list
  11. | TParamCommandComment of comment_info * comment list
  12. | ParamCommandComment of comment_info * comment list
type template_specialization_info = {
  1. tsi_template_decl : pointer;
  2. tsi_specialization_args : template_instantiation_arg_info list;
}
type decl_info = {
  1. di_pointer : pointer;
  2. di_parent_pointer : pointer option;
  3. di_source_range : source_range;
  4. di_owning_module : string option;
  5. di_is_hidden : bool;
  6. di_is_implicit : bool;
  7. di_is_used : bool;
  8. di_is_this_declaration_referenced : bool;
  9. di_is_invalid_decl : bool;
  10. di_attributes : attribute list;
  11. di_full_comment : comment option;
  12. di_access : access_specifier;
}
type block_captured_variable = {
  1. bcv_is_by_ref : bool;
  2. bcv_is_nested : bool;
  3. bcv_variable : decl_ref option;
  4. bcv_copy_expr : stmt option;
}
and block_decl_info = {
  1. bdi_parameters : decl list;
  2. bdi_is_variadic : bool;
  3. bdi_captures_cxx_this : bool;
  4. bdi_captured_variables : block_captured_variable list;
  5. bdi_body : stmt option;
  6. bdi_mangled_name : string;
}
and coreturn_stmt_info = {
  1. coret_operand : stmt option;
  2. coret_promise_call : stmt option;
}
and coro_body_stmt_info = {
  1. cbs_body : pointer;
  2. cbs_promise_decl_stmt : pointer;
  3. cbs_return_value : stmt;
}
and cxx_catch_stmt_info = {
  1. xcsi_variable : decl option;
}
and cxx_ctor_initializer = {
  1. xci_subject : cxx_ctor_initializer_subject;
  2. xci_source_range : source_range;
  3. xci_init_expr : stmt option;
}
and cxx_default_expr_info = {
  1. xdaei_init_expr : stmt option;
}
and cxx_method_decl_info = {
  1. xmdi_is_virtual : bool;
  2. xmdi_is_static : bool;
  3. xmdi_is_const : bool;
  4. xmdi_is_copy_assignment : bool;
  5. xmdi_is_copy_constructor : bool;
  6. xmdi_is_move_constructor : bool;
  7. xmdi_cxx_ctor_initializers : cxx_ctor_initializer list;
  8. xmdi_overriden_methods : decl_ref list;
}
and cxx_record_decl_info = {
  1. xrdi_bases : type_ptr list;
  2. xrdi_vbases : type_ptr list;
  3. xrdi_transitive_vbases : type_ptr list;
  4. xrdi_is_pod : bool;
  5. xrdi_is_trivially_copyable : bool;
  6. xrdi_destructor : decl_ref option;
  7. xrdi_lambda_call_operator : decl_ref option;
  8. xrdi_lambda_captures : lambda_capture_info list;
}
and decl =
  1. | TranslationUnitDecl of decl_info * decl list * decl_context_info * translation_unit_decl_info
  2. | RequiresExprBodyDecl of decl_info
  3. | LinkageSpecDecl of decl_info * decl list * decl_context_info
  4. | ExternCContextDecl of decl_info
  5. | ExportDecl of decl_info
  6. | CapturedDecl of decl_info * decl list * decl_context_info
  7. | BlockDecl of decl_info * block_decl_info
  8. | TopLevelStmtDecl of decl_info
  9. | StaticAssertDecl of decl_info
  10. | PragmaDetectMismatchDecl of decl_info
  11. | PragmaCommentDecl of decl_info
  12. | ObjCPropertyImplDecl of decl_info * obj_c_property_impl_decl_info
  13. | OMPThreadPrivateDecl of decl_info
  14. | OMPRequiresDecl of decl_info
  15. | OMPAllocateDecl of decl_info
  16. | ObjCMethodDecl of decl_info * named_decl_info * obj_c_method_decl_info
  17. | ObjCProtocolDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_protocol_decl_info
  18. | ObjCInterfaceDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_interface_decl_info
  19. | ObjCImplementationDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_implementation_decl_info
  20. | ObjCCategoryImplDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_category_impl_decl_info
  21. | ObjCCategoryDecl of decl_info * named_decl_info * decl list * decl_context_info * obj_c_category_decl_info
  22. | NamespaceDecl of decl_info * named_decl_info * decl list * decl_context_info * namespace_decl_info
  23. | HLSLBufferDecl of decl_info * named_decl_info
  24. | OMPDeclareReductionDecl of decl_info * named_decl_info * qual_type
  25. | OMPDeclareMapperDecl of decl_info * named_decl_info * qual_type
  26. | UnresolvedUsingValueDecl of decl_info * named_decl_info * qual_type
  27. | UnnamedGlobalConstantDecl of decl_info * named_decl_info * qual_type
  28. | TemplateParamObjectDecl of decl_info * named_decl_info * qual_type
  29. | MSGuidDecl of decl_info * named_decl_info * qual_type
  30. | IndirectFieldDecl of decl_info * named_decl_info * qual_type * decl_ref list
  31. | EnumConstantDecl of decl_info * named_decl_info * qual_type * enum_constant_decl_info
  32. | FunctionDecl of decl_info * named_decl_info * qual_type * function_decl_info
  33. | CXXMethodDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  34. | CXXDestructorDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  35. | CXXConversionDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  36. | CXXConstructorDecl of decl_info * named_decl_info * qual_type * function_decl_info * cxx_method_decl_info
  37. | CXXDeductionGuideDecl of decl_info * named_decl_info * qual_type * function_decl_info
  38. | VarDecl of decl_info * named_decl_info * qual_type * var_decl_info
  39. | VarTemplateSpecializationDecl of template_instantiation_arg_info list * decl_info * named_decl_info * qual_type * var_decl_info
  40. | VarTemplatePartialSpecializationDecl of template_instantiation_arg_info list * decl_info * named_decl_info * qual_type * var_decl_info
  41. | ParmVarDecl of decl_info * named_decl_info * qual_type * var_decl_info
  42. | OMPCapturedExprDecl of decl_info * named_decl_info * qual_type * var_decl_info
  43. | ImplicitParamDecl of decl_info * named_decl_info * qual_type * var_decl_info
  44. | DecompositionDecl of decl_info * named_decl_info * qual_type * var_decl_info * decl list
  45. | NonTypeTemplateParmDecl of decl_info * named_decl_info * qual_type
  46. | MSPropertyDecl of decl_info * named_decl_info * qual_type
  47. | FieldDecl of decl_info * named_decl_info * qual_type * field_decl_info
  48. | ObjCIvarDecl of decl_info * named_decl_info * qual_type * field_decl_info * obj_c_ivar_decl_info
  49. | ObjCAtDefsFieldDecl of decl_info * named_decl_info * qual_type * field_decl_info
  50. | BindingDecl of decl_info * named_decl_info * qual_type * holding_var_decl_info
  51. | UsingShadowDecl of decl_info * named_decl_info
  52. | ConstructorUsingShadowDecl of decl_info * named_decl_info
  53. | UsingPackDecl of decl_info * named_decl_info
  54. | UsingDirectiveDecl of decl_info * named_decl_info * using_directive_decl_info
  55. | UnresolvedUsingIfExistsDecl of decl_info * named_decl_info
  56. | RecordDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * record_decl_info
  57. | CXXRecordDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * record_decl_info * cxx_record_decl_info
  58. | ClassTemplateSpecializationDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * record_decl_info * cxx_record_decl_info * string * source_location * template_specialization_info
  59. | ClassTemplatePartialSpecializationDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * record_decl_info * cxx_record_decl_info * string * source_location * template_specialization_info
  60. | EnumDecl of decl_info * named_decl_info * type_ptr * decl list * decl_context_info * tag_kind * enum_decl_info
  61. | UnresolvedUsingTypenameDecl of decl_info * named_decl_info * type_ptr
  62. | TypedefDecl of decl_info * named_decl_info * type_ptr * typedef_decl_info
  63. | TypeAliasDecl of decl_info * named_decl_info * type_ptr
  64. | ObjCTypeParamDecl of decl_info * named_decl_info * type_ptr
  65. | TemplateTypeParmDecl of decl_info * named_decl_info * type_ptr
  66. | TemplateTemplateParmDecl of decl_info * named_decl_info
  67. | VarTemplateDecl of decl_info * named_decl_info
  68. | TypeAliasTemplateDecl of decl_info * named_decl_info
  69. | FunctionTemplateDecl of decl_info * named_decl_info * template_decl_info
  70. | ClassTemplateDecl of decl_info * named_decl_info * template_decl_info
  71. | ConceptDecl of decl_info * named_decl_info
  72. | BuiltinTemplateDecl of decl_info * named_decl_info
  73. | ObjCPropertyDecl of decl_info * named_decl_info * obj_c_property_decl_info
  74. | ObjCCompatibleAliasDecl of decl_info * named_decl_info * obj_c_compatible_alias_decl_info
  75. | NamespaceAliasDecl of decl_info * named_decl_info * namespace_alias_decl_info
  76. | LabelDecl of decl_info * named_decl_info
  77. | UsingEnumDecl of decl_info * named_decl_info
  78. | UsingDecl of decl_info * named_decl_info
  79. | LifetimeExtendedTemporaryDecl of decl_info
  80. | ImportDecl of decl_info * string
  81. | ImplicitConceptSpecializationDecl of decl_info
  82. | FriendTemplateDecl of decl_info
  83. | FriendDecl of decl_info * friend_info
  84. | FileScopeAsmDecl of decl_info
  85. | EmptyDecl of decl_info
  86. | AccessSpecDecl of decl_info
and enum_constant_decl_info = {
  1. ecdi_init_expr : stmt option;
}
and field_decl_info = {
  1. fldi_is_mutable : bool;
  2. fldi_is_module_private : bool;
  3. fldi_init_expr : stmt option;
  4. fldi_bit_width_expr : stmt option;
}
and friend_info = [
  1. | `Type of type_ptr
  2. | `Decl of decl
]
and function_decl_info = {
  1. fdi_mangled_name : string option;
  2. fdi_is_cpp : bool;
  3. fdi_is_inline : bool;
  4. fdi_is_module_private : bool;
  5. fdi_is_pure : bool;
  6. fdi_is_deleted : bool;
  7. fdi_is_no_return : bool;
  8. fdi_is_constexpr : bool;
  9. fdi_is_variadic : bool;
  10. fdi_is_static : bool;
  11. fdi_parameters : decl list;
  12. fdi_decl_ptr_with_body : pointer option;
  13. fdi_body : stmt option;
  14. fdi_template_specialization : template_specialization_info option;
  15. fdi_point_of_instantiation : source_location option;
}
and generic_selection_info = {
  1. gse_value : stmt option;
}
and holding_var_decl_info = {
  1. hvdi_binding_var : var_decl_info option;
}
and if_stmt_info = {
  1. isi_init : pointer option;
  2. isi_cond_var : stmt option;
  3. isi_cond : pointer;
  4. isi_then : pointer;
  5. isi_else : (pointer * source_location) option;
}
and lambda_capture_info = {
  1. lci_capture_kind : lambda_capture_kind;
  2. lci_capture_this : bool;
  3. lci_capture_variable : bool;
  4. lci_capture_VLAtype : bool;
  5. lci_init_captured_vardecl : decl option;
  6. lci_captured_var : decl_ref option;
  7. lci_is_implicit : bool;
  8. lci_location : source_range;
  9. lci_is_pack_expansion : bool;
}
and lambda_expr_info = {
  1. lei_lambda_decl : decl;
}
and obj_c_implementation_decl_info = {
  1. oidi_super : decl_ref option;
  2. oidi_class_interface : decl_ref option;
  3. oidi_ivar_initializers : cxx_ctor_initializer list;
}
and obj_c_message_expr_kind = [
  1. | `CatchParam of decl
  2. | `CatchAll
]
and obj_c_method_decl_info = {
  1. omdi_is_instance_method : bool;
  2. omdi_result_type : qual_type;
  3. omdi_is_property_accessor : bool;
  4. omdi_property_decl : decl_ref option;
  5. omdi_parameters : decl list;
  6. omdi_implicit_parameters : decl list;
  7. omdi_is_variadic : bool;
  8. omdi_is_overriding : bool;
  9. omdi_is_optional : bool;
  10. omdi_body : stmt option;
  11. omdi_mangled_name : string;
}
and opaque_value_expr_info = {
  1. ovei_source_expr : stmt option;
}
and stmt =
  1. | WhileStmt of stmt_info * stmt list
  2. | LabelStmt of stmt_info * stmt list * string
  3. | VAArgExpr of stmt_info * stmt list * expr_info
  4. | UnaryOperator of stmt_info * stmt list * expr_info * unary_operator_info
  5. | UnaryExprOrTypeTraitExpr of stmt_info * stmt list * expr_info * unary_expr_or_type_trait_expr_info
  6. | TypoExpr of stmt_info * stmt list * expr_info
  7. | TypeTraitExpr of stmt_info * stmt list * expr_info * type_trait_info
  8. | SubstNonTypeTemplateParmPackExpr of stmt_info * stmt list * expr_info
  9. | SubstNonTypeTemplateParmExpr of stmt_info * stmt list * expr_info
  10. | StringLiteral of stmt_info * stmt list * expr_info * string list
  11. | StmtExpr of stmt_info * stmt list * expr_info
  12. | SourceLocExpr of stmt_info * stmt list * expr_info
  13. | SizeOfPackExpr of stmt_info * stmt list * expr_info
  14. | ShuffleVectorExpr of stmt_info * stmt list * expr_info
  15. | SYCLUniqueStableNameExpr of stmt_info * stmt list * expr_info
  16. | RequiresExpr of stmt_info * stmt list * expr_info
  17. | RecoveryExpr of stmt_info * stmt list * expr_info
  18. | PseudoObjectExpr of stmt_info * stmt list * expr_info
  19. | PredefinedExpr of stmt_info * stmt list * expr_info * predefined_expr_type
  20. | ParenListExpr of stmt_info * stmt list * expr_info
  21. | ParenExpr of stmt_info * stmt list * expr_info
  22. | PackExpansionExpr of stmt_info * stmt list * expr_info
  23. | UnresolvedMemberExpr of stmt_info * stmt list * expr_info * overload_expr_info
  24. | UnresolvedLookupExpr of stmt_info * stmt list * expr_info * overload_expr_info * unresolved_lookup_expr_info
  25. | OpaqueValueExpr of stmt_info * stmt list * expr_info * opaque_value_expr_info
  26. | OffsetOfExpr of stmt_info * stmt list * expr_info * offset_of_expr_info
  27. | ObjCSubscriptRefExpr of stmt_info * stmt list * expr_info * obj_c_subscript_ref_expr_info
  28. | ObjCStringLiteral of stmt_info * stmt list * expr_info
  29. | ObjCSelectorExpr of stmt_info * stmt list * expr_info * selector
  30. | ObjCProtocolExpr of stmt_info * stmt list * expr_info * decl_ref
  31. | ObjCPropertyRefExpr of stmt_info * stmt list * expr_info * obj_c_property_ref_expr_info
  32. | ObjCMessageExpr of stmt_info * stmt list * expr_info * obj_c_message_expr_info
  33. | ObjCIvarRefExpr of stmt_info * stmt list * expr_info * obj_c_ivar_ref_expr_info
  34. | ObjCIsaExpr of stmt_info * stmt list * expr_info
  35. | ObjCIndirectCopyRestoreExpr of stmt_info * stmt list * expr_info
  36. | ObjCEncodeExpr of stmt_info * stmt list * expr_info * objc_encode_expr_info
  37. | ObjCDictionaryLiteral of stmt_info * stmt list * expr_info * obj_c_dictionary_literal_expr_info
  38. | ObjCBoxedExpr of stmt_info * stmt list * expr_info * objc_boxed_expr_info
  39. | ObjCBoolLiteralExpr of stmt_info * stmt list * expr_info * int
  40. | ObjCAvailabilityCheckExpr of stmt_info * stmt list * expr_info * obj_c_availability_check_expr_info
  41. | ObjCArrayLiteral of stmt_info * stmt list * expr_info * obj_c_array_literal_expr_info
  42. | OMPIteratorExpr of stmt_info * stmt list * expr_info
  43. | OMPArrayShapingExpr of stmt_info * stmt list * expr_info
  44. | OMPArraySectionExpr of stmt_info * stmt list * expr_info
  45. | NoInitExpr of stmt_info * stmt list * expr_info
  46. | MemberExpr of stmt_info * stmt list * expr_info * member_expr_info
  47. | MatrixSubscriptExpr of stmt_info * stmt list * expr_info
  48. | MaterializeTemporaryExpr of stmt_info * stmt list * expr_info * materialize_temporary_expr_info
  49. | MSPropertySubscriptExpr of stmt_info * stmt list * expr_info
  50. | MSPropertyRefExpr of stmt_info * stmt list * expr_info
  51. | LambdaExpr of stmt_info * stmt list * expr_info * lambda_expr_info
  52. | IntegerLiteral of stmt_info * stmt list * expr_info * integer_literal_info
  53. | InitListExpr of stmt_info * stmt list * expr_info
  54. | ImplicitValueInitExpr of stmt_info * stmt list * expr_info
  55. | ImaginaryLiteral of stmt_info * stmt list * expr_info
  56. | GenericSelectionExpr of stmt_info * stmt list * expr_info * generic_selection_info
  57. | GNUNullExpr of stmt_info * stmt list * expr_info
  58. | FunctionParmPackExpr of stmt_info * stmt list * expr_info
  59. | ExprWithCleanups of stmt_info * stmt list * expr_info * expr_with_cleanups_info
  60. | ConstantExpr of stmt_info * stmt list * expr_info
  61. | FloatingLiteral of stmt_info * stmt list * expr_info * string
  62. | FixedPointLiteral of stmt_info * stmt list * expr_info * string
  63. | ExtVectorElementExpr of stmt_info * stmt list * expr_info
  64. | ExpressionTraitExpr of stmt_info * stmt list * expr_info
  65. | DesignatedInitUpdateExpr of stmt_info * stmt list * expr_info
  66. | DesignatedInitExpr of stmt_info * stmt list * expr_info
  67. | DependentScopeDeclRefExpr of stmt_info * stmt list * expr_info
  68. | DependentCoawaitExpr of stmt_info * stmt list * expr_info
  69. | DeclRefExpr of stmt_info * stmt list * expr_info * decl_ref_expr_info
  70. | CoyieldExpr of stmt_info * stmt list * expr_info
  71. | CoawaitExpr of stmt_info * stmt list * expr_info
  72. | ConvertVectorExpr of stmt_info * stmt list * expr_info
  73. | ConceptSpecializationExpr of stmt_info * stmt list * expr_info
  74. | CompoundLiteralExpr of stmt_info * stmt list * expr_info
  75. | ChooseExpr of stmt_info * stmt list * expr_info
  76. | CharacterLiteral of stmt_info * stmt list * expr_info * int
  77. | ImplicitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * bool
  78. | ObjCBridgedCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * obj_c_bridged_cast_expr_info
  79. | CXXStaticCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  80. | CXXReinterpretCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  81. | CXXDynamicCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  82. | CXXConstCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  83. | CXXAddrspaceCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type * string
  84. | CXXFunctionalCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type
  85. | CStyleCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type
  86. | BuiltinBitCastExpr of stmt_info * stmt list * expr_info * cast_expr_info * qual_type
  87. | CallExpr of stmt_info * stmt list * expr_info
  88. | UserDefinedLiteral of stmt_info * stmt list * expr_info
  89. | CXXOperatorCallExpr of stmt_info * stmt list * expr_info
  90. | CXXMemberCallExpr of stmt_info * stmt list * expr_info
  91. | CUDAKernelCallExpr of stmt_info * stmt list * expr_info
  92. | CXXUuidofExpr of stmt_info * stmt list * expr_info
  93. | CXXUnresolvedConstructExpr of stmt_info * stmt list * expr_info
  94. | CXXTypeidExpr of stmt_info * stmt list * expr_info
  95. | CXXThrowExpr of stmt_info * stmt list * expr_info
  96. | CXXThisExpr of stmt_info * stmt list * expr_info
  97. | CXXStdInitializerListExpr of stmt_info * stmt list * expr_info
  98. | CXXScalarValueInitExpr of stmt_info * stmt list * expr_info
  99. | CXXRewrittenBinaryOperator of stmt_info * stmt list * expr_info
  100. | CXXPseudoDestructorExpr of stmt_info * stmt list * expr_info
  101. | CXXParenListInitExpr of stmt_info * stmt list * expr_info
  102. | CXXNullPtrLiteralExpr of stmt_info * stmt list * expr_info
  103. | CXXNoexceptExpr of stmt_info * stmt list * expr_info * cxx_noexcept_expr_info
  104. | CXXNewExpr of stmt_info * stmt list * expr_info * cxx_new_expr_info
  105. | CXXInheritedCtorInitExpr of stmt_info * stmt list * expr_info * cxx_construct_expr_info
  106. | CXXFoldExpr of stmt_info * stmt list * expr_info
  107. | CXXDependentScopeMemberExpr of stmt_info * stmt list * expr_info
  108. | CXXDeleteExpr of stmt_info * stmt list * expr_info * cxx_delete_expr_info
  109. | CXXDefaultInitExpr of stmt_info * stmt list * expr_info * cxx_default_expr_info
  110. | CXXDefaultArgExpr of stmt_info * stmt list * expr_info * cxx_default_expr_info
  111. | CXXConstructExpr of stmt_info * stmt list * expr_info * cxx_construct_expr_info
  112. | CXXTemporaryObjectExpr of stmt_info * stmt list * expr_info * cxx_construct_expr_info
  113. | CXXBoolLiteralExpr of stmt_info * stmt list * expr_info * int
  114. | CXXBindTemporaryExpr of stmt_info * stmt list * expr_info * cxx_bind_temporary_expr_info
  115. | BlockExpr of stmt_info * stmt list * expr_info * decl
  116. | BinaryOperator of stmt_info * stmt list * expr_info * binary_operator_info
  117. | CompoundAssignOperator of stmt_info * stmt list * expr_info * binary_operator_info * compound_assign_operator_info
  118. | AtomicExpr of stmt_info * stmt list * expr_info * atomic_expr_info
  119. | AsTypeExpr of stmt_info * stmt list * expr_info
  120. | ArrayTypeTraitExpr of stmt_info * stmt list * expr_info
  121. | ArraySubscriptExpr of stmt_info * stmt list * expr_info
  122. | ArrayInitLoopExpr of stmt_info * stmt list * expr_info
  123. | ArrayInitIndexExpr of stmt_info * stmt list * expr_info
  124. | AddrLabelExpr of stmt_info * stmt list * expr_info * addr_label_expr_info
  125. | ConditionalOperator of stmt_info * stmt list * expr_info
  126. | BinaryConditionalOperator of stmt_info * stmt list * expr_info
  127. | AttributedStmt of stmt_info * stmt list * attribute list
  128. | SwitchStmt of stmt_info * stmt list * switch_stmt_info
  129. | DefaultStmt of stmt_info * stmt list
  130. | CaseStmt of stmt_info * stmt list
  131. | SEHTryStmt of stmt_info * stmt list
  132. | SEHLeaveStmt of stmt_info * stmt list
  133. | SEHFinallyStmt of stmt_info * stmt list
  134. | SEHExceptStmt of stmt_info * stmt list
  135. | ReturnStmt of stmt_info * stmt list
  136. | ObjCForCollectionStmt of stmt_info * stmt list
  137. | ObjCAutoreleasePoolStmt of stmt_info * stmt list
  138. | ObjCAtTryStmt of stmt_info * stmt list
  139. | ObjCAtThrowStmt of stmt_info * stmt list
  140. | ObjCAtSynchronizedStmt of stmt_info * stmt list
  141. | ObjCAtFinallyStmt of stmt_info * stmt list
  142. | ObjCAtCatchStmt of stmt_info * stmt list * obj_c_message_expr_kind
  143. | OMPTeamsDirective of stmt_info * stmt list
  144. | OMPTaskyieldDirective of stmt_info * stmt list
  145. | OMPTaskwaitDirective of stmt_info * stmt list
  146. | OMPTaskgroupDirective of stmt_info * stmt list
  147. | OMPTaskDirective of stmt_info * stmt list
  148. | OMPTargetUpdateDirective of stmt_info * stmt list
  149. | OMPTargetTeamsDirective of stmt_info * stmt list
  150. | OMPTargetParallelForDirective of stmt_info * stmt list
  151. | OMPTargetParallelDirective of stmt_info * stmt list
  152. | OMPTargetExitDataDirective of stmt_info * stmt list
  153. | OMPTargetEnterDataDirective of stmt_info * stmt list
  154. | OMPTargetDirective of stmt_info * stmt list
  155. | OMPTargetDataDirective of stmt_info * stmt list
  156. | OMPSingleDirective of stmt_info * stmt list
  157. | OMPSectionsDirective of stmt_info * stmt list
  158. | OMPSectionDirective of stmt_info * stmt list
  159. | OMPScopeDirective of stmt_info * stmt list
  160. | OMPScanDirective of stmt_info * stmt list
  161. | OMPParallelSectionsDirective of stmt_info * stmt list
  162. | OMPParallelMasterDirective of stmt_info * stmt list
  163. | OMPParallelMaskedDirective of stmt_info * stmt list
  164. | OMPParallelDirective of stmt_info * stmt list
  165. | OMPOrderedDirective of stmt_info * stmt list
  166. | OMPMetaDirective of stmt_info * stmt list
  167. | OMPMasterDirective of stmt_info * stmt list
  168. | OMPMaskedDirective of stmt_info * stmt list
  169. | OMPUnrollDirective of stmt_info * stmt list
  170. | OMPTileDirective of stmt_info * stmt list
  171. | OMPTeamsGenericLoopDirective of stmt_info * stmt list
  172. | OMPTeamsDistributeSimdDirective of stmt_info * stmt list
  173. | OMPTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  174. | OMPTeamsDistributeParallelForDirective of stmt_info * stmt list
  175. | OMPTeamsDistributeDirective of stmt_info * stmt list
  176. | OMPTaskLoopSimdDirective of stmt_info * stmt list
  177. | OMPTaskLoopDirective of stmt_info * stmt list
  178. | OMPTargetTeamsGenericLoopDirective of stmt_info * stmt list
  179. | OMPTargetTeamsDistributeSimdDirective of stmt_info * stmt list
  180. | OMPTargetTeamsDistributeParallelForSimdDirective of stmt_info * stmt list
  181. | OMPTargetTeamsDistributeParallelForDirective of stmt_info * stmt list
  182. | OMPTargetTeamsDistributeDirective of stmt_info * stmt list
  183. | OMPTargetSimdDirective of stmt_info * stmt list
  184. | OMPTargetParallelGenericLoopDirective of stmt_info * stmt list
  185. | OMPTargetParallelForSimdDirective of stmt_info * stmt list
  186. | OMPSimdDirective of stmt_info * stmt list
  187. | OMPParallelMasterTaskLoopSimdDirective of stmt_info * stmt list
  188. | OMPParallelMasterTaskLoopDirective of stmt_info * stmt list
  189. | OMPParallelMaskedTaskLoopSimdDirective of stmt_info * stmt list
  190. | OMPParallelMaskedTaskLoopDirective of stmt_info * stmt list
  191. | OMPParallelGenericLoopDirective of stmt_info * stmt list
  192. | OMPParallelForSimdDirective of stmt_info * stmt list
  193. | OMPParallelForDirective of stmt_info * stmt list
  194. | OMPMasterTaskLoopSimdDirective of stmt_info * stmt list
  195. | OMPMasterTaskLoopDirective of stmt_info * stmt list
  196. | OMPMaskedTaskLoopSimdDirective of stmt_info * stmt list
  197. | OMPMaskedTaskLoopDirective of stmt_info * stmt list
  198. | OMPGenericLoopDirective of stmt_info * stmt list
  199. | OMPForSimdDirective of stmt_info * stmt list
  200. | OMPForDirective of stmt_info * stmt list
  201. | OMPDistributeSimdDirective of stmt_info * stmt list
  202. | OMPDistributeParallelForSimdDirective of stmt_info * stmt list
  203. | OMPDistributeParallelForDirective of stmt_info * stmt list
  204. | OMPDistributeDirective of stmt_info * stmt list
  205. | OMPInteropDirective of stmt_info * stmt list
  206. | OMPFlushDirective of stmt_info * stmt list
  207. | OMPErrorDirective of stmt_info * stmt list
  208. | OMPDispatchDirective of stmt_info * stmt list
  209. | OMPDepobjDirective of stmt_info * stmt list
  210. | OMPCriticalDirective of stmt_info * stmt list
  211. | OMPCancellationPointDirective of stmt_info * stmt list
  212. | OMPCancelDirective of stmt_info * stmt list
  213. | OMPBarrierDirective of stmt_info * stmt list
  214. | OMPAtomicDirective of stmt_info * stmt list
  215. | OMPCanonicalLoop of stmt_info * stmt list
  216. | NullStmt of stmt_info * stmt list
  217. | MSDependentExistsStmt of stmt_info * stmt list
  218. | IndirectGotoStmt of stmt_info * stmt list
  219. | IfStmt of stmt_info * stmt list * if_stmt_info
  220. | GotoStmt of stmt_info * stmt list * goto_stmt_info
  221. | ForStmt of stmt_info * stmt list
  222. | DoStmt of stmt_info * stmt list
  223. | DeclStmt of stmt_info * stmt list * decl list
  224. | CoroutineBodyStmt of stmt_info * stmt list * coro_body_stmt_info
  225. | CoreturnStmt of stmt_info * stmt list * coreturn_stmt_info
  226. | ContinueStmt of stmt_info * stmt list
  227. | CompoundStmt of stmt_info * stmt list
  228. | CapturedStmt of stmt_info * stmt list
  229. | CXXTryStmt of stmt_info * stmt list
  230. | CXXForRangeStmt of stmt_info * stmt list
  231. | CXXCatchStmt of stmt_info * stmt list * cxx_catch_stmt_info
  232. | BreakStmt of stmt_info * stmt list
  233. | MSAsmStmt of stmt_info * stmt list
  234. | GCCAsmStmt of stmt_info * stmt list
and switch_stmt_info = {
  1. ssi_init : pointer option;
  2. ssi_cond_var : stmt option;
  3. ssi_cond : pointer;
  4. ssi_body : pointer;
  5. ssi_is_all_enum_cases_covered : bool;
}
and template_decl_info = {
  1. tdi_specializations : decl list;
}
and var_decl_info = {
  1. vdi_is_global : bool;
  2. vdi_is_extern : bool;
  3. vdi_is_static : bool;
  4. vdi_is_static_local : bool;
  5. vdi_is_static_data_member : bool;
  6. vdi_is_constexpr : bool;
  7. vdi_is_init_ice : bool;
  8. vdi_init_expr : stmt option;
  9. vdi_is_init_expr_cxx11_constant : bool;
  10. vdi_parm_index_in_function : int option;
}
type lookup = {
  1. lup_decl_name : string;
  2. lup_decl_refs : decl_ref list;
}
type lookups = {
  1. lups_decl_ref : decl_ref;
  2. lups_primary_context_pointer : pointer option;
  3. lups_lookups : lookup list;
  4. lups_has_undeserialized_decls : bool;
}